Categories
Server Configuration

Rclone: Google Drive configuration

One of my client ask to configure server backup on his google drive account. The setup documentation for rclone is very good in this regard. However, there is one little problem, that Google drive ask for Web browser based consent and since I am doing remote server work with CLI, there is no way I can run the web url from server directly. Now, there maybe different ways available like I can try to run user from public IP of server, but then I have to open port on server etc. For just one URL or install a text browser which doesn’t very well for google URL.

So, I use ngork, I just download it’s Linux addition bind it to Port that rclone suggest. And now I can use their temporary URL to run the port outside on my desktop machine. It took 2-3 minute to get it up and running and then removal from server [for security reasons].

Just making this note for future reference. Then to access any URL we can use ngork subdomain capabilities to proxy and use it outside server.

Categories
Blog: My thoughts Operating System PHP Server Configuration

Linux Upgrade from 12.04 to 14.04: Save the day

So, this fine sunday, I think I wake with “lets spoil the day” mood. I start by checking my server to see how it is doing. A regular log view and updates I perform on my VPS. all was good, until I realise an update is available for my billing software. I decide to purchase an update for it. Before buying I forgot to check system requirement. Well it is just an update, and we install it every here and there for other things. So, I have updated copy of my billing software, which I follow the steps of upgrade and upload to my live server. All went well until I reach for software to suggest install PHP 5.6 instead of version I had. Well no problem how hard it is to update PHP in ubuntu 12.04, just matter of running apt-get.

Soon, I realise PHP 5.6 was never release for OS, and I need to use PPA. Found an old tutorial teaching me how to use PPA as it is my first time for it, the blog explain everything good, found couple more article but they are nearly the same. So, I went on and install the PPA and update the PHP 5.6. I run a command line to see what version of PHP is there and it correctly shows 5.6. So far so good, but suddenly “If anything goes wrong will go wrong” statement hit me. It only update CLI PHP not apache version. Damn, what is wrong with it.

PPA on Ubuntu 12.04 LTS need Apache 2.4 and Apache 2.4 never makes to Ubuntu 12.04. So, again there is PPA for apache but that doesn’t work for me well. I mean it does update few things, but cannot make PHP’s Lib for Apache to get installed. At this very moment, I have two options. Either I rollback all updates to my Backup Copy, or I move ahead to upgrade OS to 14.04 LTS. I choose later one.

Simply run “do-release-upgrade” and follow the course of stream. but it stuck as VestaCP’s APT repo didn’t work with upgrade. Not sure why, I just remove them from APT repo’ List and all goes well. All updated nothing is broken but Apache. It is broken because my previous attempt of PPA apache upgrade leave it broken and in conflicting state.

I remove and try reinstall apache without PPA, but that cause more conflict. After hit and trial with PPA and non PPA apache, I end up getting it upgrade and everything running.

There is no technical details shared in this post, as this post is not for Step on how to do it, but what not to do it. And that is only one thing, never miss reading about what upgrades you are going to do, never miss system requirement before paying someone. It only took me 4 hrs to get it all going, and frankly it turns out to be Positive for me, as it get my pending upgrade of OS done. But, I would have save my day if I read the simple requirement before buying the upgrade for billing software. I would have avoided unnecessary upgrade path, and reduce the down time to say 1 hr at most instead of 4 hrs. Good thing my blog is not a business, but never try that at client server.

Categories
Management MySQL Project Management Server Configuration

Installing Redmine 2.3.3 on Ubuntu 13

Okay, today I install Redmine on Azure hosted Ubuntu 13.04. The steps are easy once I get it done after 2 days of working and finding what is right to do. So, let us start on installation, but a little history first.

I see that Bitnami has put quite a few Redmine VM Images on VM depot. But unfortunately all are on older version of Ubuntu. But I still thought I can upgrade them for my use, so I use the latest [Ubuntu 12] based image and try to do ‘do-release-upgrade’ it download lot of things, but in end it fail to update the machine. So, I now opt to use core Linux machine to install what I need. So, I create a VM using Ubuntu 13.04. It was easy as usual. Once the machine is up. I once run do-release-upgrade to install all latest package and there are quite a lot of them. It took around 20-30 minute for my Very small instance of VM to install them.

Once the machine is ready, now we need to install: Apache, MySQL [so I can host not just redmine but couple of my other website as well]. And to extract the latest source of Redmine we also need SVN [package name ‘subversion’] on server as well. I usually use svn version only, but you can download zip/tarball as well.

So install is as follow:

# sudo apt-get install subversion
# sudo apt-get install apache2 libapache2-mod-passenger
# sudo apt-get install mysql-server mysql-client
# sudo apt-get install ruby ruby-dev
# sudo apt-get install imagemagick libmagickwand-dev ruby-rmagick

Above statements will install subversion, apache, MySQL, ruby and ruby-dev, imagemagick and ruby-rmagick .. they all are prerequesties and you might already gave those. Once this is done..

Download Redmine 2.3.3 from svn using this Redmine Download link http://www.redmine.org/projects/redmine/wiki/Download

#svn co http://svn.redmine.org/redmine/branches/2.5-stable redmine-2.5

Now, we need GEM Bundler to be installed. so

 # sudo gem install bundler

Now navigate to Redmine folder, oh you can download redmine in any folder, as long as you are ready to use your <redmine folder>/public as your document root. if not you can use symbolic link of public folder as well in apache. Just thought to tell this now. In next step we will create a Gemfile.local to tell the installer to use rack’ version 1.4.5 as by default it install version 1.5.2 and it doesn’t work for me and I see lot of people had problem with it, so just create a Gemfile.local with one line in it and use your bundler install to do it.

# cd redmine-2.3 
# sudo cat > Gemfile.local << "EOF"
gem "rack", "~> 1.4.5"
EOF
# sudo bundle install --without development test mysql
# rake generate_secret_token

Once you did that it install redmine or rather just built it. We now need a database to store redmine data, so create MySQL database, username and password as you want. Obviously you don’t want to use root username. Once you create that user and database. then go to redmine/config folder, you will find database.yml.example file, copy it as database.yml go to production section of MySQL db, enter your login info and change database type t0 mysql2 [it is just new library of MySQL with ruby, you can still use [mysql] but it might give error so better change it.

production:
  adapter: mysql2
  database: redmine_default
  host: localhost
  username: redmine
  password: some-secure-plain-text-password
  encoding: utf8

Now run following commant to Create Database Table, clear unwanted data and session

rake db:migrate RAILS_ENV=production 
rake tmp:cache:clear
rake tmp:sessions:clear

Now, second last step: Creating a virtual Host or defining the DocumentRoot so our apache can use redmine installation. Add following Virtual Host Tag, you can add other information as you like, but keep this as minimum you need. Please change “[” and “]” with “<” and “>” as my editor doesn’t allow me to use them below…

[Virtualhost *:80]
DocumentRoot /usr/local/share/redmine-2.3.0/public
[Directory /usr/local/share/redmine-2.3.0/public]
AllowOverride all
Options -MultiViews
[/Directory]
[/VirtualHost]

Restart Apache

# sudo service apache2 restart

Now, go to your domain, IP address base url whaterver it is, and login using “admin” as username and password. You are most probably ready to rock. If not you should enable error login using /config/environment/production.rb file and then check what error you might get from Redmine.

Categories
Joyous Server Configuration

Move to Azure as Trial

Okay, so I activate my Azure trial and thought to move my blog on it. I am currently hosted with Azure VM [small instance] as trial. Hope it give better performance than my previous host, which was lately too slow to work with.

Categories
Rants Server Configuration

Plesk: Not Recommended

Lately I got a chance to work on lot of server. Working on 6-7 server in 15 days it not much for a full time server admin, but for a programmer who only manage server to fasten his development process is really long ask. During this process I have 2 encounter with Plesk and unfortunately both time Plesk proves to be a pain in neck.

First encounter was during setup a new Windows machine. My client purchase a Leased Term license of plesk and in return plesk send them 10 days temporary license which is expected to install on server and later plesk will auto update the license from online server. This is what I understand during our communication with plesk. However my client took 15 days to pass me the license and server access or you can say they hire me after 15 days of buying license. When I install plesk and try to upload license it naturally says, it is expired. Then we try to contact Plesk support, we call USA support, India Sales support, email to plesk, but no response and no guidance how we get corrected license. After 7 days of talking with plesk we drop the idea of having plesk on server.

Here comes the second problem with plesk. You just cannot run the “uninstaller” because they never build uninstaller for their PERFECT software. luckily my client get the computer formatted at no additional cost, otherwise I have to search and delete all file manually, which I don’t want for two reason. I hate deletion they always leave traces anyways and it is lot more work then expected.

We later use Microsoft’s Free WebsitePanel. An Awesome software with ease of use for our purpose. We can install any version of SQL Server, MySql, PHP, ASP.NET and configure that easily. Plus we pay nothing to get it.

My second encounter came with a Linux/CentOs Based VPS with Plesk, where I need to upgrade the PHP version from 5.1 to 5.3 on client demand. I search on internet and found that Plesk do not distribute PHP so they do no provide any upgrade method. But there is atomic shell script available to help update. I did that update. PHP was upgraded. We run it, but as you have expected Plesk is broken now. Been on VPS it frequently goes out of memory and create all problems. We ultimately decide to drop that server as it is just test server :).

I got saved both time and will never try a Plesk. Horrible software, powered by horrible support. Plesk is good for non experience, but nightmare for custom requirements. Never use it if you love to configure your server for speed or customization.

Categories
Operating System PHP Server Configuration

PHP Upgrade on Plesk/Linux

Well if you search topic on google you will find lot about it. But here is quick guide for me with little explanation.

1. Plesk do not ship PHP as it’s integrated part, so it ask you to upgrade outside plesk and they do not provide support on it.

2. On Linux you can use default APT or YUM to upgrade PHP. In my case it is CentOS/Red hat flavour so this article apply to that mainly. Now when I try to upgrade from PHP 5.1 to PHP5.3 I cannot do that as default CentOS repo shows PHP53 as different package and do not come under default upgrade. And it though gets in conflict with PHP5.1’s current install.

3. I try to Erase existing package and thought to install PHP 5.3 afresh. But it shows a list of 110 dependencies which mainly consist of Plesk’s module. Otherwise it was fairly okay to YUM ERASE PHP. So, I have to opt for this solution which works 100% for where I read about it.

4. Atomic Corp create a script then on Red Hat favour enable 5.1 to 5.3 upgrade (Their WIKI: http://www.atomicorp.com/wiki/index.php/PHP ) Once you run this SH script you can re-run YUM to do the update. Steps are:

# wget -q -O -http://www.atomicorp.com/installers/atomic.sh
# yum upgrade php
# service httpd restart

Bingo !!! PHP upgraded. No server restart needed.

Categories
Operating System Server Configuration

Classic ASP : Enable Debug mode on IIS7

After a long time today I need to work on Classic ASP website. Ofcourse, it was debugging job and the first hurdle was to make the site running in my test environment where unfortunately I don’t have Debugging for ASP.net enabled. So, I thought to do that by changing my IIS 7 setting so I don’t have to chance it everytime for every project after all it is debug server only.

So here are settings I need to change:

1. Select the Default website in IIS [or website you need to enable debugging].

2. Look for ASP icon, double click open it. In debugging settings check “Send to browser ” and Enable Server side debug to true. Close this dialog

3. Look for Error pages, Double Click open, look for 500 Error page, right click select “edit features”/advance options. Select Detail Error for all modes.

 

Update

Webmatrix (Parent Path):

In case you want to enable parent path for Webmatrix setup, then look for IIS Express icon in system tray and look for “Show all Application”, where you find the applicationhost.config file path. Open it in editor and at bottom of file you will find Configuration Tag for required site location. (Beware there you will find lot of location for all different projects you run through IIS express), just edit the required one and put the configuration from this ticket

Stackoverflow Issue

<asp 
     enableParentPaths="true" 
     bufferingOn="true" 
     errorsToNTLog="true" 
     appAllowDebugging="true" 
     appAllowClientDebug="true" 
     scriptErrorSentToBrowser="true">

     <session allowSessionState="true" />
     <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
     <limits />
</asp>

That is it.