Project

General

Profile

Install the MRC PHP Extension » History » Revision 27

Revision 26 (Neil Voss, 05/12/2010 03:00 PM) → Revision 27/80 (Neil Voss, 05/12/2010 03:22 PM)

h1. Install the MRC PHP Extension 

 MRC Tools is installed as a php extension and is required for displaying mrc files live on the web browser. 

 h2. Make sure you have installed the prerequisite packages 

 You may find installation information for the following packages under [[Install Web Server Prerequisites]]. 

 h3. php-devel 

 You can check whether php-devel is installed by typing: typing 

 <pre> 
 <pre>phpize</pre> phpize 
 Do not worry about any error message and long as the command is found. </pre> 

 h3. php-GD/FFTW3-devel 

 Make sure that php-GD and FFTW 3 devel libraries are installed. 

 *TODO:* provide a screenshot of info.php when correctly installed. 

 *Note:* 
 MRCtools are compiled and added to php extension with php-devel package. MRCtools use GD and FFTW3 that need to be compiled from their development libraries while the extension is compiled. If GD and FFTW3 sources were downloaded and compiled directly on your computer, these development files are included. If (as in most cases) GD and FFTW3 are installed from rpm, they are not included. An error message will appear when you attempt to compile mrctools. In this case, you will need separate download and installation of GD-devel and FFTW3-devel. Search http://rpmfind.net/linux/rpm2html/ for GD-devel and FFTW3-devel for the rpm distribution needed for your system. More information on the gd library can be found "here":http://www.php.net/manual/en/image.requirements.php. If you find that you can only view images as png instead of jpg, it may be that you do not have gd _jpeg_ support installed. 

 h2. MRC Tools Installation 

 mrctools is installed from the php devel directory. This is usually located in /usr/include/php/ext where you will find other php extension source such as gd. After the installation, mrc.so should be placed in php's extension directory. The location of the extension directory can be found by looking for "extension_dir" in http://your_host/info.php. 

 h3. 1 Download "php_mrc_src_1_5_1.tgz":http://emg.nysbc.org/attachments/107/php_mrc_src_1_5_1.tgz. 

 h3. 2 Go to myami/php_mrc your php devel directory and untar the archive 

 If you are unsure where the php devel directory is, use info.php to find it under *extension_dir*. 

 <pre> 
 > cd /usr/include/php/ext/ 
 > mv [downloads]/php_mrc_src_[x].tgz . 
 > tar zxvf php_mrc_src_[x].tgz 
 > cd mrc/ 
 </pre> 

 h3. 3 Compile and install the MRC module 
 

 <pre> 
 > phpize 
 > ./configure  
 > make 
 sudo > make install 
 </pre> 

 


 h3. Check 4 Confirm that the mrc.so module exists is in your php module extension directory (e.g., @/usr/lib64/php/modules@ on 64bit CentOS/RHEL/Fedora). If you are unsure where the php module directory is, use http://localhost/info.php to find it under *extension_dir*. 
 

 <pre> 
 > ls /usr/lib/php/extensions 
   
 mrc.so 
 </pre> 



 h3. 5 Edit your php configuration file. 

 <pre> 
 > vi /etc/php.ini 
 </pre> 

 * Increase memory 
 Check that you increased the memory_limit field while configuring php.ini.  
 It is set to 8M by default. A 4kx4k float MRC image is about 64MB. 
 At NRAMM, it is set to 4000M. 
 <pre> 
 memory_limit = 4000M; Maximum amount of memory 
 </pre> 

 * Check extension_dir value 
 <pre> 
 extension_dir = /usr/lib/php/extensions 
 </pre> 

 * Add the "mrc.so" extension to the end of the *extension section* 
  <pre> 
  extension=mrc.so 
  </pre> 
 *Note:* If you do not see a number of extensions already activated in this section, you should probably follow the alternative path below to enable the extension in a separate file. 

 *OR* 

 If your linux distro has a /etc/php.d/ or /etc/php.d/conf.d/ directory where other .ini files reside, you may need to follow these alternate instructions. 

 * Confirm the location of "additional .ini files parsed" from the info.php web page (/etc/php.d in this example) 
 and create a file called    "mrc.ini" in this directory. 
  <pre> 
  > cd /etc/php.d 
  > vi mrc.ini 
  </pre> 
 
 * Add these lines in the file "mrc.ini" to make mrc.so an extension 
  <pre> 
  ; Enable mrc extension module 
  extension=mrc.so 
  </pre> 

 h3. 6 Restart your webserver 

 <pre> 
 > /etc/init.d/apache2 restart 
 </pre> 
 
 *OR* 

 <pre> 
 > /etc/init.d/httpd restart 
 </pre> 


 h3. 7 Verify the mrc tools installation 

 h4. Check php information 

 Visit or refresh http://yourhost/info.php which you created earlier. It should have a section looking like this (The version should correspond to what you've just installed): 

 !http://emg.nysbc.org/software/leginon/images/images/phpmrc.png! 

 If mrc is not listed, the extension did not get added in the right order. 

 h4. Alternative approach if mrc module does not show up in info.php output 

 1. find in the info.php web page the location of "additional .ini files parsed" in the first table (such as /etc/php.d/conf.d/*). 

 2. Go to the directory and make a copy of any ini file to use as a template for mrc.ini 

 <pre> 
       >cd [additional_ini_directory] 
       >cp gd.ini mrc.ini 
 </pre> 

 3. Edit mrc.ini to the following 

 <pre> 
       ; comment out next line to disable mrc extension in php 
       extension=mrc.so 
 </pre> 

 4. Comment out mrc extension from php.ini (found in /etc/php.ini/ on a typical PHP installation) 

 <pre> 
       ;extension=mrc.so 
 </pre> 

 5. Restart your webserver 

 <pre> 
       > /etc/init.d/httpd restart 
 </pre> 

 h4. Test the MRC module installation 

 Download this MRC file "mymrc.mrc":http://emg.nysbc.org/attachments/55/mymrc.mrc and the following 2 scripts into the same directory to test the PHP mrc extension.  
 * gd module testing script "ex1.php":http://emg.nysbc.org/attachments/53/ex1.php 
 * fftw module testing script "ex2.php":http://emg.nysbc.org/attachments/54/ex2.php 

 Run the scripts with the following commands: 
 The expected results are shown below. If you get the same images, you've installed the extension properly. 

 <pre> 
 > php -q ex1.php | display 
 </pre> 

 * gd module test result: 
 !http://emg.nysbc.org/attachments/57/ex1.php.png! 

 <pre> 
 > php -q ex2.php | display 
 </pre> 

 * fftw module test result: 
 !http://emg.nysbc.org/attachments/58/ex2.php.png! 

 Test files work but images not showing up in the ImageViewers? 
 [[Troubleshooting Notes|Here's one way this was fixed.]] 

 ______ 

 [[Check php information|< Check php information]] | [[Install the Web Interface|Install the Web Interface >>]] 


 ______