AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
PHP的安装与配置 ## 安装PHP前,安装以下程序包: ~~~ yum install -y make gcc gcc-c++ ~~~ ### 1. 解压PHP源码包,并进入源码目录 ~~~ tar -zxvf php-7.0.27.tar.gz cd php-7.0.27 ~~~ ### 2. 预编译-配置安装选项 > 在安装php时要注意: 需要打开 php和apache 另外还需要打通php和mysql 也就是说:安装php之后需要让apahce能够支持php,同时还需要让php操作mysql。 要实现这些,需要添加台下几个安装配置项: --with-apxs2=/usr/local/apache/bin/apxs # 打通apache --with-mysql=/usr/local/msyql/bin/mysql_config # 让php支持mysql --with-mysqli=mysqlnd #让php支持mysql 安装mysqli扩展 --with-pdo-mysql=mysqlnd # 让php支持mysql 安装pdo扩展 --enable-fpm #开启fpm 如果不加fpm的话安装后,PHP的安装目录找不到对应的启动脚本和配置项。 --enable-mbstring 安装 mbstring扩展 在实际应用中,需要添加的配置项不至这些,可以根据自己项目的实际情况进行扩展。 在这里以最基础的为例 ~~~ ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=/usr/local/msyql/bin/mysql_config --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring ~~~ 出现如下提示: ![](https://box.kancloud.cn/02953f78cf4e550d357c54ffd47b3a02_1015x137.png) 根据提示: ~~~ yum install libxml2 -y ~~~ 安装完成后,重新预编译 ~~~ ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=/usr/local/msyql/bin/mysql_config --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring ~~~ mysql 默认是支持的,可以不加 更多的安装选项,可以根据实际情况添加 ~~~ ./configure \ --prefix=/usr/local/php \ --exec-prefix=/usr/local/php\ --bindir=/usr/local/php/bin \ --sbindir=/usr/local/php/sbin \ --includedir=/usr/local/php/include \ --libdir=/usr/local/php/lib \ --mandir=/usr/local/php/man \ --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc \ --with-mysql-sock=/tmp/mysql.sock \ --with-mcrypt \ --with-mhash \ --with-openssl \ --with-mysql=/usr/local/mysql/bin/mysql_config \ --with-mysqli=shared,mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gd \ --with-iconv \ --with-zlib \ --enable-zip \ --enable-inline-optimization \ --enable-sockets \ --enable-soap \ --enable-session \ --with-curl \ --enable-opcache \ --enable-fpm \ --enable-fastcgi \ #这一个不需,默认开启,加上后,安装配置最后会出现警告,不影响安装! --with-fpm-user=www \ --with-fpm-group=www \ --disable-fileinfo # 执行时,需要放到一行执行 ~~~ 仍然出现以上提示: ![](https://box.kancloud.cn/7cccf892c6eee1fddddfa49f7ff8eeee_1013x138.png) ~~~ yum install libxml2-devel -y ~~~ 安装完成后,重新预编译 ~~~ ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=/usr/local/msyql/bin/mysql_config --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring ~~~ 出现如下提示:说明预编译通过 ![](https://box.kancloud.cn/a816e81596881fbae1dba4c09a6551b8_824x602.png) ### 3. 编译安装 ~~~ make && make install ~~~ 安装完成后,启动php-fpm: 这里如果直接启动php-fpm 会报如下错误 ~~~ /usr/local/php/sbin/php-fpm ~~~ ![](https://box.kancloud.cn/57b6206d6753bbc177c39c40b86c31c2_1015x230.png) 根据提示,可以确定是因为缺少 php-fpm的配置文件 php 安装后,其实已经创建好了默认配置文件,在/usr/local/php/etc下,只是需要修改一下名子: ![](https://box.kancloud.cn/ab10a4fc58c590323c849e460c39f478_832x162.png) 这里把 php-fpm.conf.default改为php-fpm.conf.default即可。 ~~~ mv ./php-fpm.conf.default ./php-fpm.conf ~~~ 还需要修改一个配置文件的名子,在/usr/local/php/etc/php-fpm.d 将www.conf.default改为www.conf即可。 ![](https://box.kancloud.cn/d0e34697ec2b60747b8d3c312f2bec47_561x188.png) ~~~ mv ./www.conf.default ./www.conf ~~~ 重新执行php-fpm的启动脚本 ~~~ /usr/local/php/sbin/php-fpm ~~~ 可能会出现如下提示: ![](https://box.kancloud.cn/502ef650ca8e7e88f5bcc7f2b483fc93_1012x95.png) 【解决方法】编辑php-fpm的配置文件,将user 和group改为系统用户即可。 ![](https://box.kancloud.cn/53cd81c14ce6f98ac32ab5b4c91eb2fa_1013x250.png) **这时启动 php-fpm** ~~~ /usr/local/php/sbin/php-fpm ~~~ 这时就可以正常启动了 ### 4 配置 1. 加入环境变量 对所有用户永久生效 ~~~ # 编辑/etc/profile文件,在文件最后,添加下面两行内容: PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin export PATH vi /etc/profile #编辑后,使环境变量立即升效,执行下面命令 source /etc/profile #设置之后,可以直接使用 php -v 查看php的版本 php -v ~~~ 2. php配置文件 php的配置文件可以在php的源码包中找到, ![](https://box.kancloud.cn/55079ee3ab0e1aab3eaa8ae11ccecfca_415x248.png) 将其中一个复制到,/usr/local/php/etc ~~~ cp ./php.ini-production /usr/local/php/etc/php.ini ~~~ 3. 设置php-fpm为系统服务,并加入开机启动 这里要起把php-fpm加入系统服务,就需要一个启动脚本 >[success]启动脚本可以,到php的源码目录中找到,php源码目录/sapi/fpm ![](https://box.kancloud.cn/f81956a0afb823529301c1a19f5b5f30_880x325.png) 这里需要把 init.d.php-fpm复制到/etc/init.d中 ~~~ cp ./init.d.php-fpm /etc/init.d/php-fpm ## 添加可执行权限 chmod +x /etc/init.d/php-fpm ~~~ 测试 ~~~ killall php-fpm service php-fpm start ~~~ ![](https://box.kancloud.cn/4df8a8a636adc1a4a9b247af793e88a1_721x111.png) **加入系统服务并设为开机启动** ~~~ chkconfig --add php-fpm chkconfig php-fpm on ~~~ 4. 配置apache 使其支持php 让apche支持php的话,需要在php的安装参数中加 --with-apxs2=/usr/local/apache/bin/apxs。 另外,需要在apache的配置文件中加入下面配置: > 该配置内容可以到apache的帮助文档中找到: > http://httpd.apache.org/docs/2.4/mod/core.html#filesmatch ![](https://box.kancloud.cn/cc1dbe51730d1e1332aa3ec961107ec3_933x142.png) ~~~ <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> ~~~ 另外在apache的配置文件中,找到:DirectoryIndex 然后加入 'index.php' ~~~ <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> ~~~ 重启apache ~~~ service httpd restart ~~~ ### 5.测试 1. 测试apache 和 php 创建 /var/www/test.com/index.php 文件 vim /var/www/test.com/index.php ~~~ <?php phpinfo(); ~~~ 访问:http://www.test.com ![](https://box.kancloud.cn/fbddb3aca2a358b789ffe0dcc446c8dd_944x235.png) 2. 测试php和mysql 在这里需要到php的配置文件php.ini中,打开相应的扩展,如下: ![](https://box.kancloud.cn/f320933cc2c586289cf1c87c0e787228_642x528.png) 去掉前面的分号 然后重新php-fpm和httpd ~~~ service php-fpm restart service httpd restart ~~~ 在/var/www/test.com/index.php 中加入如下代码: ~~~ $link=mysqli_connect('localhost','root','111111'); if($link){ echo "mysql连接成功"; }else{ echo "mysql连接失败"; } ~~~ ![](https://box.kancloud.cn/c115b91395c3fce91c62d867ad8e9dd3_897x393.png) **知识扩展** #### 启动php-fpm ~~~ chmod 755 /etc/init.d/php-fpm /etc/init.d/php7-fpm start ~~~ > php-fpm支持的操作: > start,启动PHP的FastCGI进程。 > stop,强制终止PHP的FastCGI进程。 > quit,平滑终止PHP的FastCGI进程。 > restart, 重启PHP的FastCGI进程。 > reload, 重新加载PHP的php.ini。 > logrotate, 重新启用log文件。 #### 也可以把fpm设为开机启动 ~~~ chkconfig php-fpm on #在这里也可以使用共它方法 ~~~ **环境变量设置** 通过echo $PATH查看一下php的环境变量是否已经设置,如果没有设置需要重新设置一下,如果已设置,直接跳过! 环境变量的设置方式: ~~~ vi /etc/profile #在其未尾添加如下两行: PATH=$PATH:/usr/local/php7/bin export PATH #或者 vi /root/.bash_profile #中添加php bin的安装路径 #或者 (推荐) echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile ~~~ 配置环境变量,这三种方式都是可以的