centOs7上部署LAMP环境详细整理笔记

时间:2022-09-17 18:18:42

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在linux上的安装

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 库找不到路径报错,,可以参考下面的文章

linux下编译安装php各种报错大集合

安装完成后特别需要注意的是配置 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

好了,完结撒花!!