Maison >développement back-end >tutoriel php >1.1-php编译安装
1. MySQL安装(同LAMP里面的安装方法)
2. php安装
wget http://cn2.php.net/distributions/php-5.4.37.tar.bz2
tar jxf php-5.4.37.tar.bz2
useradd -s /sbin/nologin php-fpm
cd php-5.4.37
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --disable-ipv6 --with-curl
make && make install
3.增加php用户和用户组
useradd -s /sbin/nologing -M php-fpm
4.在源码目录下复制配置文件
cp php.ini-production /usr/local/php/etc/php.ini
5.php专属配置文件改名
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
6.拷贝启动脚本:
cp /usr/local/src/php-5.4.37/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
测试php配置文件是否正常
/usr/local/php/sbin/php-fpm -t
注意:不能用启动脚本加-t 如:/etc/init.d/php-fpm -t
课后答疑
php.ini 是php的全局配置文件,比如我要配置时区,配置禁止函数。
php-fpm.conf 是php-fpm 专属的配置文件,比如配置运行服务的用户,配置启动参数等,咱们视频都有讲。
php-fpm 就是一个启动二进制文件。
学习lnmp 时 也是需要 先 安装mysql php nginx ? 那mysql 和php 的安装目录是不是不能和之前冲突?还有就是 之前不是已经编译安装过mysql 和php 了,难道不能共用么?
答:lnmp顺序,只要保证 php在mysql后面就行。 mysql可以共用,php不可以,因为编译参数都不一样。 你可以指定一个和apache的php不同的目录
lamp=linux+apache+mysql+php; lnmp=Linux+nginx+mysql+php 他们的区别在于apache和nginx和php结合的模式不同,我们讲的这两个架构中,php在编译的时候以一个模块的形式和apache成为了一个整体,这种情况下我们是可以把php的安装目录/usr/local/php删除的。而lnmp中的php启动了一个服务php-fpm,这种模式相当于nginx处理php脚本时,直接把请求转发给了php-fpm,说白了就是一个代理。这个php的安装目录是不可以删除的。 这两种模式其实是可以共存的,编译配置的时候,把prefix=后面的目录改一下即可,不让它覆盖。