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
~~~
出现如下提示:

根据提示:
~~~
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
# 执行时,需要放到一行执行
~~~
仍然出现以上提示:

~~~
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
~~~
出现如下提示:说明预编译通过

### 3. 编译安装
~~~
make && make install
~~~
安装完成后,启动php-fpm:
这里如果直接启动php-fpm 会报如下错误
~~~
/usr/local/php/sbin/php-fpm
~~~

根据提示,可以确定是因为缺少 php-fpm的配置文件
php 安装后,其实已经创建好了默认配置文件,在/usr/local/php/etc下,只是需要修改一下名子:

这里把 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即可。

~~~
mv ./www.conf.default ./www.conf
~~~
重新执行php-fpm的启动脚本
~~~
/usr/local/php/sbin/php-fpm
~~~
可能会出现如下提示:

【解决方法】编辑php-fpm的配置文件,将user 和group改为系统用户即可。

**这时启动 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的源码包中找到,

将其中一个复制到,/usr/local/php/etc
~~~
cp ./php.ini-production /usr/local/php/etc/php.ini
~~~
3. 设置php-fpm为系统服务,并加入开机启动
这里要起把php-fpm加入系统服务,就需要一个启动脚本
>[success]启动脚本可以,到php的源码目录中找到,php源码目录/sapi/fpm

这里需要把 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
~~~

**加入系统服务并设为开机启动**
~~~
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

~~~
<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

2. 测试php和mysql
在这里需要到php的配置文件php.ini中,打开相应的扩展,如下:

去掉前面的分号
然后重新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连接失败";
}
~~~

**知识扩展**
#### 启动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
~~~
配置环境变量,这三种方式都是可以的
- 前言准备
- Linux新服务器的前期配置
- 认识linux下的Web服务器
- Linux的基本配置
- LNMP一键安装包快速部署web服务器
- LAMP服务器环境部署
- LAMP服务器管理
- LNMP服务器环境部署
- LNMP服务器管理
- lnmp一键安装包-常见问题
- 使用包管理器快速部署环境
- 包管理器快速部署LAMP服务器环境
- 升级php和mysql版本
- 包管理器快速部署LNMP服务器环境
- 使用源码包部署Linux服务器web环境
- 编译LAMP服务器环境部署
- apache安装与配置
- mysql的安装与配置
- PHP的安装与配置
- 编译LNMP服务器环境部署
- nginx服务启动脚本
- 源码安装常见问题
- Centos6与Centos7的区别
- 默认控制系统服务工具不同
- 设置开机启动的方式不同
- 编写service启动脚本
- 编写systemctl启动脚本
- 服务器安全
- 隐藏服务器信息
- Linux服务器防火墙设置
- 防火墙设置脚本
- 邮件发送
- 任务脚本的编写
- 服务器磁盘和服务器健康状态脚本
- 服务器登录报警脚本
- 数据库备份脚本
- 定时任务及应用
- 常见问题
- linux中使用ping命令不同的问题
- Linux中无法发送邮件
- mailx通过ssl方式发送邮件
- Mysql配置文件
- Linux TCP/UDP 常用端口
- Linux常见命令
- 系统信息
- 关机 (系统的关机、重启以及登出 )
- 文件和目录
- 文件搜索
- 挂载一个文件系统
- 磁盘空间
- 用户和群组
- 文件的权限
- 文件的特殊属性
- 打包和压缩文件
- RPM包
- YUM软件包升级器
- DEB 包 (Debian, Ubuntu 以及类似系统)
- APT 软件工具 (Debian, Ubuntu 以及类似系统)
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化一个文件系统
- SWAP文件系统
- 备份
- 光盘
- 网络-(以太网和WIFI无线)
- vi命令
- cut命令 截取
- Mysql
- MySQL备份-增量备与恢复命令实战
- mysqlbinlog
- mysql的安装
- 卸载mysql
- mysql多实例安装
- mysql 常用基础命令操作
- linux安装jdk、rpm安装mysql
- linux制作本地yum源
- shell脚本
