Apache+Mysql+PHP7部署总结
部署过程其中有不少踩坑的地方,这里做个总结。
服务器环境LAMP配置
- apache
yum -y install httpd httpd-devel
开机启动
systemctl enable httpd.service
关闭防火墙或者开放80端口,这个很重要,不然根本访问不了,centos7之后就不用 iptables 去管理防火墙了
systemctl stop firewalld.service
当然也可以 yum -y install iptables-services 去使用之前的iptables管理防火墙
httpd -V
查看apache的配置文件在哪里,安装路径在哪里,可以找到httpd.conf
通过
httpd -M
查看 httpd 安装的模块,因为是用 yum 安装,所以使用的是静态编译,也就是说不需要再 httpd.conf 去手动修改配置让 apache 去加载模块 LoadModel
最后配置 httpd.conf
allow from all //之类的
如果使用 laravle 的话还要 AllowOverride All 支持重写
如没什么意外 curl http://localhost
就能看到 apache 的启动页面了
- MYSQL
首先CentOS7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,其实就是一个加强版的 mysql 替代品,而且功能是和 5.5 版本一模一样,如果对版本没什么要求可以用这个
yum -y install mysql mysql-server mysql-devel
这里安装的mysql其实就是 mariadb , 在命令行中使用
->mysql
就可以登录 mysql 了,当然可以折腾一下安装真正的mysql
参考 install mysql
- php7
我觉得 php7 这个版本是我在服务器上踩坑最多的地方,参考了很多文章
PHP7中php.ini、php-fpm和www.conf的配置
我的编译配置 ./configure 参数为
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mcrypt --with-mhash --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --enable-gd-native-ttf --with-iconv --with-zlib --with-curl --with-jpeg-dir --with-freetype-dir --with-apxs2=/usr/bin/apxs --with-openssl --with-xmlrpc --with-bz2 --with-gettext --with-fpm-user=www --with-fpm-group=www --with-readline --with-recode --with-ldap --enable-fpm --enable-cgi --enable-xml --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --enable-sysvmsg --enable-sysvshm --enable-shmop --enable-zip --enable-soap --enable-session --enable-opcache --enable-cli
特别注意的是这里 –with-apxs2=/usr/bin/apxs 让 apache 编译可用的支持 php7 的模块 libphp7.so 在 httpd 文件夹 module 中,如果没命令 apxs 就安装一个吧。。。。
安装过程中如果出了什么问题基本都可以上去 google 查看,因为是自编译,所以编译之前一定要安装编译的依赖库 ,比如 libmcrypt 之类的额
本来以为 congifure 后直接 make 就没什么事儿了,结果还是有不少错误,都是 make 的时候发现一些 lib 库找不到路径报错,,可以参考下面的文章
安装完成后特别需要注意的是配置 php.ini 很多人说,只需要在 httpd.conf 里加入一句
AddType application/x-httpd-php .php .phtml
特么的并不是好吗!!!
当 apache 接受请求,要去读取 php 文件的时候,需要 libphp7.so 编译后的 php 支持模块。这个模板第一件事就是去读取 php.ini ,php.ini 在你编译的参数 –with-config-file-path=/usr/local/php/etc 里已经确定了,第一需要看看你的 php.ini 在不在这个路径里面,第二,是需要去 php.ini里去加上 extension_dir = XXX,这个非常非常非常重要!!!!
比如我的编译参数为 –prefix=/usr/local/php ,我需要去里面查看 /lib/php/extensions/no-debug-non-zts-20151012/ 类似这样的文件 。。。。。。
在 php.ini中
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"
- laravel
在 git clone 代码版本仓库后,进入目录
composer isntall
生成 laravel 的 key ,虽然我也不知道拿来干吗
key:generate
给 laravel 项目权限
/storage/ 777
/public/ 777
其余的都是 755
好了,完结撒花!!