LNMP即linux+nginx+mysql+php.
用來搭建php+mysql網站很好的選擇。下面開始安裝;
一、Nginx
yum安裝:http://bfe99.blog.51cto.com/blog/1072496/1313414
編譯安裝:http://bfe99.blog.51cto.com/blog/1072496/1131164
測試:直接在瀏覽器中輸入http://192.168.1.220(你機器的ip地址)訪問
如果出現,那麼恭喜你,nginx安裝成功!
Welcome to nginx!
注:防火牆的配置。
二、MySQL
待續。
三、Php、Php-fpm
php的版本選擇以前的穩定版5.3.14。由於php5.3.x直接綁定php-fpm,所以php-fpm是沒有php5.3.x的包。
###################################################
通過源碼安裝php5.3.14。
wget http://cn.php.net/get/php-5.3.14.tar.bz2/from/this/mirror
tar -xvjf php-5.3.14
cd php-5.3.14
#下載源碼
安裝(php源碼安裝的話,其參數會非常多。具體看你加載那些擴展)
> ./configure -enable-fpm--with-mysql=/usr/bin/mysql --with-curl --with-zlib_dir=/usr/lib64 --with-gd--with-mysqli
( -enable-fpm開啓php-fpm,cgi模式
--with-mysql=/usr/bin/mysql /usr/bin/mysql是你的mysql客戶端的地址
--with-mysqli 加載mysqli擴展
--with-curl加載curl擴展
--with-zlib_dir=/usr/lib64這個暫時不知道什麼意思,但是不加上會出現:configure error:Try adding --with-zlib_dir=<DIR>……錯誤
--with-gd加載gd擴展
--with-mcrypt
--with-mhash
--with-mbstring
)
>make
>make install
####################################################
#################yum安裝##########
yum install php-fpm
service php-fpm start
如果找不到源則進行下面操作:
·首先,添加atomic源,這個atomic是專爲LAMP設置的,很多源在有了新的版本之後會刪除舊的版本,因此無法使用。在終端輸入以下代碼:
wget -q -O - http://www.atomicorp.com/installers/atomic | sh·其次使用yum的附加選項–enablerepo(這個可以指定從哪個源安裝軟件),再次,使用–exclude選項(排除特定的包),這裏呢,就寫出我們需要的命令:
yum --enablerepo=atomic --exclude=php*5.3*--exclude=php*5.4* install php
。兩個排除(–exclude。5.3和5.4,自己融匯貫通),一個指定(–enablerepo,當然可以像–exclude一樣連續兩個。)#######################################
#########################php5.4安裝也說一下##############
使用 WebtaticEL6的YUM源來安裝php5.4,我們首頁安裝Webtatic EL6 YUM源
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
yum install php54w
如果安裝失敗,建議您先卸載以前的php再進行安裝,使用yum remove php php-*
附帶的php擴展列表:
Package | Provides |
php54w | mod_php |
php54w-bcmath | |
php54w-cli | php-cgi, php-pcntl, php-readline |
php54w-common | php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib |
php54w-dba | |
php54w-devel | |
php54w-embedded | php-embedded-devel |
php54w-enchant | |
php54w-fpm | |
php54w-gd | |
php54w-imap | |
php54w-interbase | php_database, php-firebird |
php54w-intl | |
php54w-ldap | |
php54w-mbstring | |
php54w-mcrypt | |
php54w-mssql | |
php54w-mysql | php-mysqli, php_database |
php54w-odbc | php-pdo_odbc, php_database |
php54w-pdo | |
php54w-pgsql | php-pdo_pgsql, php_database |
php54w-process | php-posix, php-sysvmsg, php-sysvsem, php-sysvshm |
php54w-pspell | |
php54w-recode | |
php54w-snmp | |
php54w-soap | |
php54w-tidy | |
php54w-xml | php-dom, php-domxml, php-wddx, php-xsl |
php54w-xmlrpc | |
php54w-zts |
注意事項
最新版本中的error_reporting 中E_ALL 現在包含了 E_STRICT,會出現更多的警告及錯誤提示。默認情況下error_reporting是關閉狀態,但是如果是從舊的php版本中升級而來,php.ini可能得不到更新,error_reporting可能開啓着。
關於php5.4在centos5上的安裝升級
因爲centos已經過去的版本了,用的越來越少,把php5.4移植到centos5上也需要大量的工作,估計夠嗆能完成啊。
########################################################
service php-fpm start
netstat -tunlp | grep 9000
測試是否安裝成功
四、讓nginx支持php
找到/etc/nginx/conf.d/default.conf,打開編輯它
>vi /etc/nginx/conf.d/default.conf
去掉下面部分的註釋用於支持php 腳本:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; /usr/share/nginx/html指你的網站目錄
include /etc/nginx/fastcgi_params; 要確保找對文件地址
重啓nginx服務
>/etc/init.d/nginx stop
>/etc/init.d/nginx start
啓動php-fpm
>/usr/local/sbin/php-fpm
建立php測試文件
vi phpinfo.php
其內容:
<?php
phpinfo();?>
瀏覽http://(你機器的ip地址)/phpinfo.php
如果出一個php的特色標誌頁面,就說明安裝成功了。
五、問題總結
安裝php中的mcrypt出問題:mcrypt.h not found. Please reinstalllibmcrypt
解決方法:
yum install libmcrypt
編譯安裝遇到的問題比較多,建議yum安裝。
重啓nginx時提示ive"root" is not terminated by ";"
發現配置文件裏面少;可}這裏要注意.
可以用grep 來查看下.
網上也有人說:
將重新後的url用雙引號引起來!
出錯:rewrite ^/date/([0-9]{6})/?([0-9]+)?/?$/index.php?action=article&setdate=$1&page=$2 last;
正確:rewrite"^/date/([0-9]{6})/?([0-9]+)?/?$"/index.php?action=article&setdate=$1&page=$2 last;