搞PHP这么久,没怎么搭PHP环境,之前的工作中都有同事代劳。最近不怎么忙,从头研究一下PHP环境搭建。过程可能要持续几天。
目标:
centos + tengine(淘宝开源nginx) + mysql + php + redis(缓存) + yaf(PHP框架) + xunsearch(搜索)
系统安装:
装好VMware,下载CentOS-7-x86_64-Minimal-1511.iso,系统安装过程中,各种配置不一一赘述了,比较简单。主要说一下网卡配置,因为是core版本,很多东西没有,首页得把网弄通,这样才能需要什么yum安装什么。
首先VMware虚拟机设置里面网络设置选好桥接模式
下一步,配置网卡文件/etc/sysconfig/network-scripts/ifcfg-eth0(ubuntu16.4请修改/etc/network/interfaces)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:ED:5C:20 #MAC地址
IPADDR=10.152.62.199 #IP地址
GATEWAY=10.152.62.254 #网关
DNS1=10.152.62.1 #DNS
主要下面四个选项需要配置,MAC地址可以在虚拟机网络适配器里面找到
IP网关DNS可以在宿主机里面找到
网关和DNS照抄宿主机,IP宿主机同网段找个没人用的
保存配置,重启网络service network restart
最后再重启下虚拟机reboot
重新进入之后 ping baidu.com 能ping通 网络就OK啦
PHP安装:
待续(2016年6月17日11:26:22)
core版本centos需要安装gcc
yum install gcc
还需要安装libxml2
yum install libxml2
yum install libxml2-devel
接着安装PHP
tar -zxvf /tmp/php-xxx.xxx.gz
./configure --prefix=/opt/app/php --enable-fpm
make
make install
NGINX安装:
待续(2016年6月17日14:46:07)
安装淘宝版的nginx tengine,可以去官网tengine.taobao.org下载。
安装tengine需要pcre和openssl支持,下载解压pcre和openssl。
安装pcre需要g++,安装openssl需要perl,yum安装一下
yum install gcc-c++ #安装g++
./configure --prefix=/opt/app/pcre #安装pcre
make && make install
yum install perl #安装perl
./config --prefix=/opt/app/openssl #配置openssl
make && make install
准备工作做好,接下来配置安装tengine
./configure --prefix=/opt/app/nginx --with-pcre=/opt/soft/pcre.xx.xx --with-openssl=/opt/soft/openssl.xx.xx #配置nginx 注意这里pcre和openssl的路径是解压路径
make && make install #安装
安装完毕后,需要配置PHP和nginx使二者关联起来。
先配置PHP
groupadd www
useradd -g www www #添加www用户组和www用户备用
cp php-fpm.conf.default php-fpm.conf
vi php-fpm.conf #文件里主要有[www]下user group listen等几项需要修改
user = www
group = www
listen = /tmp/php-cgi.sock #默认IP加端口 据说以sock文件方式配置速度较快 未测试
listen.owner = www
listen.group = www
listen.mode = 0666
接着配置nginx
server {
listen 80;
server_name mynginx.com;
root /opt/case/mypro;
location ~ .*\.(php)?$ {
fastcgi_pass unix:/tmp/php-cgi.sock; #php-fpm.conf中listen项对应
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置完毕后,启动PHP和nginx,创建一个测试文件。
/opt/app/php/sbin/php-fpm #启动php
/opt/app/nginx/sbin/nginx #启动nginx
vi index.php #测试文件
<?php
phpinfo();
?>
在宿主机中加好host,测试浏览测试文件
如图显示,就成功了。
安装MySQL
待续(2016年6月20日15:33:28)
好了 接着装MySQL,折腾了好久。
惯例首先下载MySQL,到官网下载页,选MySQL Community Edition,社区版,也就是免费版,系统选择上选Linux-Generic就好,文件格式我选的是gz格式的mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz。下载完毕后,解压并初始化就好,名称带glibc表示是编译好的版本。
tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
cp mysql-5.7.13 /opt/app/mysql
cd /opt/app/mysql
mkdir data #创建数据库存储目录
cd ..
groupadd mysql
useradd -g mysql mysql #创建专用用户组用户
chmod -R 755 mysql
chown -R mysql.mysql mysql #修改目录权限
cd mysql
./bin/mysqld --basedir=/opt/app/mysql --datadir=/opt/app/mysql/data --user=mysql --initialize #数据库初始化操作
注意初始化成功的话,会给你一个随机密码,记得保存一下,之后可以在控制台修改。
无错误的话,MySQL就安装好了。进MySQL控制台之前,还需要配置一下/etc/my.cnf文件
[mysqld]
basedir=/opt/app/mysql #MySQL目录
datadir=/opt/app/mysql/data #data目录
socket=/var/lib/mysql/mysql.sock #sock文件
symbolic-links=0
[client]
socket=/var/lib/mysql/mysql.sock
配置好之后,启动MySQL
/opt/app/mysql/support-files/mysql.server start
然后进控制台看看
/opt/app/mysql/bin/mysql -uroot -p
输入初始化时生成的密码,无误的话就可以进去啦
第一次进去会提示要修改密码
set password=password('mima')
到此,MySQL安装完成,接下来需要配置PHP,让PHP里面可以调用MySQL。
首先要加上MySQL的扩展,进PHP的解压目录(注意不是安装目录),该目录下有ext目录,进去找到mysql目录,再进去,运行phpize添加扩展
/opt/app/php/bin/phpize #运行phpize
./configure --with-php-config=/opt/app/php/bin/php-config --with-mysql=/opt/app/mysql #配置
make && make install #安装
成功的话会提示生成的so文件存到了哪个目录。
这里再装一下pdo_mysql的扩展,因为MySQL扩展现在已经弃用了,说不定哪天就不支持了。安装过程跟MySQL扩展一样,找到对应目录pdo_mysql进去
/opt/app/php/bin/phpize #运行phpize
./configure --with-php-config=/opt/app/php/bin/php-config --with-pdo-mysql=/opt/app/mysql #配置
make && make install #安装
安装好之后,需要修改php的ini文件,将这两个扩展启用。
这里要注意的是,之前没有配置ini文件,在phpinfo页面可以看到加载的ini文件是none,我们需要将自带的样板文件拷一个到phpinfo页面中的ini文件目录,样板文件在PHP解压目录下
cp /opt/softgz/php-5.5.36/php.ini-development /opt/app/php/lib/php.ini
接着修改
extension=mysql.so
extension=pdo_mysql.so #启用扩展
pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
mysql.default_socket = /var/lib/mysql/mysql.sock #mysql sock文件 与my.cnf中保持一致
重启PHP
修改测试PHP文件,加上数据库操作代码,运行测试。OK的话,LNMP环境搭建完毕。接着装redis缓存。
redis安装
待续(2016年6月23日17:40:07)
这段时间一直有事,今天有空,就把redis给装上了,比较简单。
首先去redis官网redis.is下载好安装包,然后解压安装即可
tar -zxvf redis-3.2.1.tar.gz
cd redis-3.2.1
make && make install
完成之后,应该会有几个redis命令可用了,redis-server运行看看,能看到 ‘The server is now ready to accept connections on port 6379’的字样就表示成功了。
接着下载phpredis的中间件phpredis-develop,下载好之后解压
cd phpredis-develop
/opt/app/php/bin/phpize
./configure --with-php-config=/opt/app/php/bin/php-config
make && make install
///vi php.ini
///extension=redis.so
///这里要在PHP的ini文件中启用redis扩展
///重启php
运行测试PHP文件,phpinfo里面现在应该能看到redis的信息了。
在PHP测试文件里面加上以下代码
$redis = new redis();
$redis->connect('localhost','6379');
echo $redis->ping();
echo '<br />';
$redis->set('name','abc');
echo $redis->get('name');
页面能看到
+PONG
abc
的字样表示安装成功了。
yaf安装
待续(2016年7月28日11:10:44)