2015年11月24日 星期二

CentOS 4.4 32位元安裝apache+mysql+php+fastcgi+ImageMagick+MagickWand

32位元

安裝MYSQL mysql-max-5.0.27-linux-i686-glibc23.tar.gz

groupadd mysql
useradd -g mysql mysql
cd /usr/local
這裡解壓
tar -zxvf /root/mysql-max-5.0.27-linux-i686-glibc23.tar.gz
mv mysql-max-5.0.27-linux-i686-glibc23/ mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql &
這是所有的步驟...

測試
/usr/local/mysql/bin/mysqladmin version
# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

OpenSSL 安裝:
下載:http://www.openssl.org/
先使用 rpm -qa | grep openssl 檢查一下有無安裝,
我裝的時候已經有裝了所以在 configure 時就只 --enable-ssl=static
若是自行安裝的請用 --with-ssl=/usr/local/ssl
代碼:
tar zxvf openssl-0.9.8e.tar.gz.tar
cd openssl-0.9.8e
./config
make
make test
sudo make install

安裝httpd-2.2.4.tar.gz
tar zvxf httpd-2.2.4.tar.gz
cd httpd-2.2.4

./configure --prefix=/usr/local/apache2 --enable-so --enable-deflate --with-mpm=worker --enable-ssl=static --enable-mods-shared=all --enable-mods-shared=all --enable-fastcgi
make
make install

先配置一下deflate:
代碼:
DeflateFilterNote ratio
LogFormat '"%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)' deflate


# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch MSIE !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
# Header Error
# Header append Vary User-Agent env=!dont-vary

### mod_deflate End ###


#查找CustomLog 註解原始的一行,改成
CustomLog logs/access_log deflate

#####我這是有裝fastcgi的模組,若不要裝fastcgi時要記得在 PHP configure 不要--enable-fastcgi,但要 --with-apxs2=/usr/local/apache2/bin/apxs

fastcgi2.4.2安裝
下載:http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz

代碼:
tar zvxf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
cp Makefile.AP2 Makefile
#修改Makefile文件,把裡面的
top_dir = /usr/local/apache2 (根據apache安裝目錄調整)
make
make install


以下裝GD,同前奏是裝zlib,libpng,jpeg,freetype。
32位元 ln -s /usr/lib/libjpeg.so.62 /usr/local/modules/jpeg/lib/libjpeg.so

tar zvxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install


tar zvxf libpng-1.2.14.tar.gz
cd libpng-1.2.14
./configure --prefix=/usr/local/modules/libpng
make
make install

jpeg目錄沒有的目錄只要新建就可以了.

32位元安裝: 增加
mkdir /usr/local/modules/jpeg

mkdir /usr/local/modules/jpeg/bin

mkdir /usr/local/modules/jpeg/lib

mkdir /usr/local/modules/jpeg/bin/cjpeg

mkdir /usr/local/modules/jpeg/man

mkdir /usr/local/modules/jpeg/man/man1

mkdir /usr/local/modules/jpeg/include

六個目錄
先列出配置gd2需要的網址

gd-2.0.33.tar.gz
www.boutell.com/gd

jpegsrc.v6b.tar.gz
ftp.uu.net/graphics/jpeg
www.ijg.org

libpng-1.2.14.tar.tar
www.libpng.org/pub/png/libpng.html
libpng.sourceforge.net
sourceforge.net/projects/libpng

zlib-1.2.3.tar.gz
www.zlib.net
sourceforge.net/projects/zlib

freetype-2.2.1.tar.gz
www.freetype.org
freetype.sourceforge.net/index2.html
sourceforge.net/projects/freetype

##
安裝jpegsrc
tar zvxf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/modules/jpeg --enable-shared
make
make install

安裝freetype
tar zvxf freetype-2.2.1.tar.gz
cd freetype-2.2.1
./configure --prefix=/usr/local/modules/freetype
make
make install

安裝libxml2-2.6.19
tar zvxf libxml2-2.6.19.tar.gz
cd libxml2-2.6.19
mkdir -p /usr/local/libxml2
./configure --prefix=/usr/local/libxml2
make
make install
cp xml2-config /usr/bin

安裝gd-2
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/modules/gd
make
make install

安裝PHP
#建議安裝PHP5,因為PHP4已經不再更新了
tar zvxf php-5.1.6.tar.gz
cd php-5.1.6

//這是加入fastcgi
./configure --prefix=/usr/local/php --with-iconv --with-mysql=/usr/local/mysql --with-gd=/usr/local/modules/gd --with-zlib --with-xml=/usr/local/libxml2 --with-jpeg-dir=/usr/local/modules/jpeg -with-png-dir=/usr/local/modules/libpng --with-freetype-dir=/usr/local/modules/freetype --enable-exif --enable-bcmath --enable-wddx --with-dom --with-iconv --enable-fastcgi --enable-mbstring=all --with-curl --with-openssl

//這是沒加入fastcgi
./configure --prefix=/usr/local/php --with-iconv --with-mysql=/usr/local/mysql --with-gd=/usr/local/modules/gd --with-zlib --with-xml=/usr/local/libxml2 --with-jpeg-dir=/usr/local/modules/jpeg --with-apxs2=/usr/local/apache2/bin/apxs -with-png-dir=/usr/local/modules/libpng --with-freetype-dir=/usr/local/modules/freetype --enable-exif --enable-bcmath --enable-wddx --with-dom --with-iconv --enable-mbstring=all --with-curl --with-openssl

make clean ###記得先清一下,否則可能錯得很冤枉
make
make install
cp php.ini-recommended /usr/local/php/lib/php.ini

下面原始配置php+apache+fastcgi
代碼:

mkdir /usr/local/apache2/phpbin
cp /usr/local/php/bin/php /usr/local/apache2/phpbin/
vi /usr/local/apache2/conf/httpd.conf

我們在編譯時加入--with-mpm=worker


ServerLimit 32
ThreadLimit 128
StartServers 16
MaxClients 4096
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 128
MaxRequestsPerChild 2560


DirectoryIndex index.html index.html.var index.php
#後面加上index.php

LoadModule fastcgi_module modules/mod_fastcgi.so

FastCgiServer /usr/local/apache2/phpbin/php -idle-timeout 60 -listen-queue-depth 2000 -processes 100 -appConnTimeout 60
#對fastcgi進行優化
AddHandler php-fastcgi .php
Alias /phpbin/ "/usr/local/apache2/phpbin/"

SetHandler php-fastcgi

Action php-fastcgi /phpbin/php

AddType application/x-httpd-php .php

這時候輸入 /usr/local/apache2/bin/apachectl start
如果沒有錯誤的話,哪麼我們基本配置已做好,下面我們做加速入安全設置.

# tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.0.1-linux-glibc21-i386
# ./install.sh

# /usr/local/php/lib/php.ini
#按要求一步一步選擇就好了

# eaccelerator-0.9.5安裝
下載:http://nchc.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.tar
代碼:
# tar jxf eaccelerator-0.9.5.tar.tar
# cd eaccelerator-0.9.5
# export PHP_PREFIX="/usr/local/php" ///注意路徑,可以用find命令搜索"phpize"路徑
# $PHP_PREFIX/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install
/*以上標準指令,我裝的時候就因為前兩行沒有執行,./configure的時候報錯(phpize的作用就是生成configure文件等,
eaccelerator包里本身是沒有這個文件的),其時你也可以直接輸入phpize所在的絕對路徑,比如我的路徑:/usr/local/php/bin/phpize,就可以安裝了*/


如果裝過二個以上的PHP版本(如:php4.4.2 && php4.4.1),在轉行(/usr/local/apache2/phpbin/php)時會報錯,
只在使用zend_extension_ts的時候不報(不確定能否加速);也可以從一台已裝好eaccelerator的機器上把eaccelerator.so拷貝過來覆蓋原文件也可.

裝好了eaccelerator,就開始配置吧.打開php.ini文件,Zend加速過的放在/usr/local/Zend/etc/php.ini(這是我的Zend安裝目錄),
/usr/lib/php.ini是它的一個文件連接(ln),但是起作用的還是用phpinfo();顯示出來的php.ini所在路徑,這一點請注意.
以下是完整代碼.
vi /usr/local/php/lib/php.ini

代碼:
///用這個替代,注意路徑,根據實際來定路徑(可以用find命令搜索eaccelerator.so所在路徑)

eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
[Zend]
zend_extension_ts ="/usr/local/php/lib/php/extensions/no-debug-zts-20050922/eaccelerator.so" (這裡的路徑一定要對,否則會報錯,zend_extension_ts後面的_ts要看你的PHP是什麼類型安裝的...)
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2_6_2
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2_6_2
zend_optimizer.version=2.6.2
;zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so //忽略這一行,因為zend_extension_ts和zend_extension只能出現一個


建立相對目錄:
代碼:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

/usr/local/php/bin/php -m 檢查有無報錯

若是裝PHP5 需要打開 short_open_tag = on 才能使用短標語


#####裝這是因為要做縮圖才需要安裝

安裝ImageMagick

因為安裝drupal的image module必需用到ImageMagick,所以了解了一下,ImageMagick的功能非常強大。
張微波的BLOG裡講到到了如何使ImageMagick支持PHP,但是我現在發現ImageMagick網站的下載頁面理已經有了一個叫MagickWand for PHP的套件,可以直接支持php。

安裝步驟:
1、首先安裝ImageMagick程序
wget http://www.imagemagick.org/download/ImageMagick-6.1.7-5.tar.gz
tar zxvf ImageMagick-6.3.2-2.tar.gz
cd ImageMagick-6.3.2-2
./configure --enable-shared --enable-lzw --with-modules //--enable-lzw 是打開lzw壓縮
make clean
make
make install


2、安裝MagickWand for PHP
在安裝之前如果未有安裝php,先按正常步驟安裝一遍php,產生所需的phpize程序。
然后:
wget http://www.magickwand.org/download/php/MagickWandForPHP-0.1.0.tar.bz2

bunzip2 MagickWandForPHP-0.1.0.tar.bz2

tar zxvf magickwand-0.1.9.tar.gz
mv magickwand PHP_SRC_DIR/ext/magickwand
mv magickwand /root/php-4.4.4/ext/magickwand
註: PHP_SRC_DIR是指你的php源碼目錄

cd PHP_SRC_DIR/ext/magickwand/
cd /root/php-4.4.4/ext/magickwand
/usr/local/php/bin/phpize

然後 cd PHP_SRC_DIR
cd /root/php-4.4.4
rm -rf ./configure
./buildconf --force

然後重新編譯php
./configure --prefix=/usr/local/php --with-iconv --with-mysql=/usr/local/mysql --with-gd=/usr/local/modules/gd --with-zlib --with-xml=/usr/local/libxml2 --with-jpeg-dir=/usr/local/modules/jpeg --with-apxs2=/usr/local/apache2/bin/apxs -with-png-dir=/usr/local/modules/libpng --with-freetype-dir=/usr/local/modules/freetype --enable-exif --enable-bcmath --with-magickwand=/usr/local/ImageMagick
gmake
gmake install

這樣就ok了!!

#####

【設定root帳號】

MySQL裡的帳號和Linux的使用者帳號是兩回事,毫不相干,底下的root指的是MySQL伺服器中的root帳號。
安裝完畢之後,我們新增個帳號來執行MySQL資料庫,接著將/usr/local/mysql裡的檔案擁有權限設給此一帳號。這個動作是為增加MySQL的安全性。
adduser mysql

chown -R mysql.mysql /usr/local/mysql


接下來我們來啟動MySQL吧!啟動MySQL的指令如下:
/usr/local/mysql/bin/safe_mysqld --user=mysql &


啟動了MySQL之後,我們趕緊來給MySQL設定密碼吧!首先先切換到/usr/local/mysql/bin的目錄下,然後執行「./mysqladmin -u root password '密碼'」來給root設定密碼。例如:我們想把MySQL的管理者root的密碼設為12345,則執行下列指令:
cd /usr/local/mysql/bin
./mysqladmin -u root password '12345'



【自動啟動設定】

嗯…每次開機都要自己啟動MySQL也是很累的一件事,所以,您可以把啟動指令(如下)加到/etc/rc.d/rc.local檔案的最後一行,那麼,以後開機便會自動啟動MySQL了。
/usr/local/mysql/bin/safe_mysqld --user=mysql &
/usr/local/apache2/bin/apachectl start

沒有留言: