1、安裝前準備javascript
下載php-5.4.13.tar.gz最新版本放到/user/src目錄下php
2、安裝css
由於在安裝php過程當中,會依賴安裝不少庫,爲了避免讓你反覆安裝,建議按步驟操做html
安裝autoconf工具java
sudo apt-get install autoconf
安裝libxml2庫node
sudo apt-get install libxml2-dev
安裝libbz2-devmysql
sudo apt-get install libbz2-dev
安裝curllinux
sudo apt-get install libcurl4-gnutls-dev
安裝jpeglibnginx
sudo apt-get install libjpeg-dev
安裝pngsql
sudo apt-get install libpng-dev
安裝libxpm-dev
sudo apt-get install libxpm-dev
安裝freetype
sudo apt-get install libfreetype6-dev
安裝libt1
sudo apt-get install libt1-dev
安裝mcrypt
sudo apt-get install libmcrypt-dev
安裝xslt
sudo apt-get install libxslt1-dev
按照上面的步驟安裝將會爲您節省至少20分鐘的時間,甚至更多;若是還有錯誤,則根據提示安裝庫
最後執行安裝命令,當前在解壓好的php原文件包/usr/src/php-5.4.13目錄
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-curl --with-pear --with-gd --with-jpeg-dir --with-png-dir --with-zlib --with-xpm-dir --with-freetype-dir --with-t1lib --with-mcrypt --with-mhash --with-mysql --with-mysqli --enable-pdo --with-pdo-mysql --with-openssl --with-xmlrpc --with-xsl --with-gettext --with-fpm-user=www-data --with-fpm-group=www-data --enable-fpm --enable-exif --enable-wddx --enable-zip --enable-bcmath -with-bz2 --enable-calendar --enable-ftp --enable-mbstring --enable-soap --enable-sockets --enable-shmop --enable-dba --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-debug --enable-maintainer-zts --enable-embed
make && make install
若是出現安裝 openssl/evp.h:沒有那個文件或目錄 錯誤
使用sudo apt-cache search openssl
通過查找libcurl4-openssl-dev 出現這個包
sudo apt-get install libcurl4-openssl-dev
安裝這個
但是這個依賴已經安裝了,因而趕忙google,發現說類庫文件找不到,可是網上的文章中都是說只要安裝了依賴就能執行,但是我卻仍是報這個錯誤,直到搜到這個http://community.itbbs.cn/thread/21506,上面說在/usr/lib/x86_64-linux-gnu/這個目錄下,趕忙看了下,果真在,建立了軟連接,
1 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/
2 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4 /usr/lib/ 3 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 /usr/lib/
再次執行./configure就能經過了.
安裝成功!!
3、配置php
將php安裝目錄加到PATH中
echo 'if [ -d "/usr/local/php/bin" ] && [ -d "/usr/local/php/sbin" ]; then PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin"fi' >> /etc/bash.bashrc
當前會員也加到PATH中
export PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin"
準備php的日誌文件目錄
mkdir /var/log/php-fpm
chown -R www:www /var/log/php-fpm
準備php的配置文件
cd /usr/src/php-5.4.13
cp -f php.ini-production /usr/local/php/etc/php.ini
chmod 644 /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
注意: PHP的配置文件在/usr/local/php/etc/php.ini,
php-fpm的配置文件在/usr/local/php/etc/php-fpm.conf.
設置php-fpm啓動管理文件,並讓PHP在ubuntu啓動時自動運行
cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
設置PHP的自動日誌分割和壓縮: vi /etc/logrotate.d/php-fpm
加入下面的內容保存退出:
/var/log/php-fpm/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 www-data www-data sharedscripts postrotate [ ! -f /opt/php5/var/run/php-fpm.pid ] || kill -USR1 `cat /opt/php5/ /var/run/php-fpm.pid` endscript }
4、配置php-fpm和nginx
打開php-fpm配置文件
vi /usr/local/php/etc/php-fpm.conf
下面的參數須要改下
pid = run/php-fpm.pid //這個必去將前面的;註釋去掉(一開始沒去掉結果出502錯誤)
error_log = log/php-fpm.log
log_level = notice
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
;daemonize = yes
[www]
;prefix = /path/to/pools/$pool
listen = 127.0.0.1:9000
; listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
而後配置nginx
vi /usr/local/nginx/conf/nginx.conf
內容以下
user www;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events
{
use epoll;
worker_connections 1024;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8M;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server
{
listen 80; #/*監聽端口*/
server_name localhost; #/*服務器名稱*/
index index.html index.htm index.php; #/*缺省主頁名稱*/
root /var/www; #/*網站根目錄,也能夠採用下面內容*/
#也能夠採用相對路徑,下面註釋部分*/
#location / {
# root html;
# index index.html index.htm;
# }
#limit_conn crawler 20;
#經過FastCGI方式支持PHP,php頁面由fastcgi代理處理,這也是反向代理的一個應用,這裏能夠是jsp/asp等腳本。
location ~ .*\.(php|php5)?$
{
include /etc/nginx/fastcgi_params;#爲FastCGI模塊設置了基本的環境變量
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
#include fcgi.conf; #/*fastcgi配置文件,修改成如下內容*/
}
#對於某一類型的文件,設置過時時間,靜態的頁面一般設置長一點。
#靜態文件,nginx本身處理
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 30d;
}
#日誌的格式
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/nginx/access.log access;
}
}
保存退出,重啓fpm和nginx
/etc/init.d/php-fpm restart/etc/init.d/nginx restart