1.获取Apache源码包并且编译安装,官网获取的版本是httpd-2.2.29,默认安装在/usr/local/apache2中
步骤1:配置:./configure --enable-so --enable-rewrite --prefix=/usr/local/apache2
其中 --enable-so 选项是:让 Apache 可以支持DSO模式,也就是能够动态加载模块
步骤2:make
步骤3:make install
3个步骤之后Apache安装成功,具体的Apache的文件结构和配置文件,可参看该链接:http://www.it165.net/os/html/201311/6623.html
源码安装的Apache启动、停止、重启的命令是执行/bin/apachectl脚本,如下:
开启:/usr/local/apache2/bin/apachectl -k start
重启:/usr/local/apache2/bin/apachectl -k reload
停止:/usr/local/apache2/bin/apachectl -k stop
查看Apache已经安装的模块:/usr/local/apache2/bin/apachectl -t -D DUMP_MODULES
2.安装php,我的版本是php5.3.3
步骤1:配置:./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --enable-fpm --with-mysql -- with-pdo-mysql --enable-opcache
其中--with-apxs2=/usr/local/apache2/bin/apxs 选项表示安装php是使用cli模式,也就是命令模式,来安装;
--enable-fpm选项是允许使用php的fpm
步骤2:make
步骤3:make install
步骤4:复制新的配置文件到刚刚使用“--with-config-file-path”选项配置的php配置文件目录中去
cp php.ini-development /usr/local/php/php.ini
php常用命令:
查看php配置文件是否配置无误:/usr/local/php/bin/php -v
查看php配置情况等价于phpinfo:/usr/local/php/bin/php -i
查看php已安装的模块:/usr/local/php/bin/php -m
使用php环境:/usr/local/php/bin/php -a
3.安装Apache的fastcgi模块:mod_fastcgi-2.4.6版本
步骤1:进入目录中,然后cp Makefile.AP2 Makefile
步骤2:vim Makefile 将Makefile中的路径改成你的Apache的安装路径,以便安装时候自动将mod_fastcgi.so复制到Apache的安装目录下的modules目录下
步骤3:make
步骤4:make install
4.配置Apache的配置文件httpd.conf,让php使用fastcgi来允许,在配置文件中加入以下代码:
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule fastcgi_module>
ScriptAlias /fcgi-bin/ /usr/local/php/bin/
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
FastCgiExternalServer /usr/local/php/bin/php-cgi -host 127.0.0.1:9000
</IfModule>
<Directory "/usr/local/php/bin/">
Options None
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .php
5. 开启、重启、停止php-fpm:(也就是通过php-fpm来开启重启停止php,加载php.ini的操作)
以上安装后php-fpm执行文件是在php安装目录下的/sbin/php-fpm,只要执行该文件即可开启php-fpm: /usr/local/php/sbin/php-fpm
由于php5.3.3版本后的php-fpm不再支持旧的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例:
php-fpm 关闭: kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启: kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`
注意:/usr/local/php/var/run/php-fpm.pid这个进程文件路径,是php-fpm配置文件(/usr/local/php/etc/php-fpm.conf)中配置的进程路径,配置文件的该处配置详情如下:
最后可通过命令:ps aux | grep php-fpm 查看php-fpm的进程id是否变化来确定是否重启或关不