centos6.4、编译安装php5.4.30
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# yum -y install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel gd # yum -y install bzip2 bzip2-devel curl curl-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel # yum -y install mysql* #安装jpegsrc tar zxvf jpegsrc.v9.tar.gz cd jpeg-9/ ./configure -enable-shared -enable-static make make install # tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure make make install # tar zxvf php-5.4.30.tar.gz cd php-5.4.30 ./configure --prefix=/home/work/php \ --with-libxml-dir=/usr/include/libxml2 \ --with-config-file-path=/home/work/php/etc/ \ --with-mysql \ --with-gd \ --enable-gd-native-ttf \ --with-zlib \ --with-mcrypt \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-wddx \ --enable-zip \ --with-xmlrpc \ --enable-fpm \ --enable-mbstring \ --with-zlib-dir \ --with-bz2 \ --with-curl \ --enable-exif \ --enable-ftp \ --with-jpeg-dir=/usr/lib64 \ --with-png-dir=/usr/lib64 \ --with-freetype-dir=/usr/lib64 \ --with-iconv \ --enable-xml \ --enable-bcmath \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --with-openssl \ --enable-pcntl \ --with-gettext \ --enable-session \ --with-curlwrappers \ #可以去掉 make make install #创建配置文件,并将其复制到正确的位置。 cp php.ini-development /home/work/php/php.ini cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf cp sapi/fpm/php-fpm /usr/local/bin |
注:重要扩展安装:
php模块,在php源码下ext目录,里面有很多php的扩展模块,找到如pdo_mysql目录
执行 php/bin/phpize 会得到configure文件
php-config 不是 php.ini,是可执行程序。
./configure –with-php-config=/usr/local/php/bin/php-config
–with-pdo-mysql=/usr/local/mysql/ (yum安装的可以不用指定吧。)
make
make install
会把.so文件放到php的扩展中,修改php.ini增加extension=pdo_mysql.so
其他模块也类似。~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#####先安装nginx######### #yum -y install gcc automake autoconf libtool make #yum install gcc gcc-c++ ./configure --sbin-path=/home/work/nginx/nginx \ --conf-path=/home/work/nginx/nginx.conf \ --pid-path=/home/work/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=/rrc/software/nginx/pcre-8.35 \ --with-zlib=/rrc/software/nginx/zlib-1.2.8 \ --with-openssl=/rrc/software/nginx/openssl-1.0.1h \ #注 后三个依赖包是源码路径 make make install |
#######nginx配置#############
location ~ \.php$ {
root /home/work/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
}
#####nginx###############
#####先安装redis#########
$ tar xzf redis-2.8.11.tar.gz
$ cd redis-2.8.11
$ make
编译后的可执行文件在src目录中,可以使用下面的命令运行Redis:
$ src/redis-server
你可以使用内置的客户端连接Redis:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
“bar”
#####redis###############
##注意路径的修改##
需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。
将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。
打开 php.ini:
vim /usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并将其修改为如下所示:
cgi.fix_pathinfo=0
在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
vim /usr/local/etc/php-fpm.conf
找到以下内容并修改:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user’s group
; will be used.
user = www-data
group = www-data
然后启动 php-fpm 服务:
/usr/local/bin/php-fpm
本文档未涵盖对 php-fpm 进行进一步配置的信息,如果您需要更多信息,请查阅相关文档。
配置 Nginx 使其支持 PHP 应用:
vim /usr/local/nginx/conf/nginx.conf
修改默认的 location 块,使其支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
重启 Nginx。
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
创建测试文件。
rm /usr/local/nginx/html/index.html
echo “” >> /usr/local/nginx/html/index.php
打开浏览器,访问 http://localhost,将会显示 phpinfo() 。