Linux(CentOS)环境下 Apache + PHP +Mysql 项目部署

Apahce,PHP,Mysql都可以使用自行下载安装包或者包管理器中下载两种方式安装
,使用yum下载相对简单,而自行下载安装包的方式能够自定义安装某些组件,并且已有安装包的情况下可以离线安装,根据自身情况选择适合的方式,这里推荐使用yum,相对来说较为简单快捷。

1.安装Apache

yum install -y httpd

修改配置文件 /etc/httpd/conf/httpd.conf

  • 添加对index.php首页的支持
    index.php
    在这里插入图片描述
  • 添加对PHP脚本的支持
    AddType application/x-httpd-php-source .phps
    AddType application/x-httpd-php .php

    在这里插入图片描述
  • 添加动态库文件引用
    LoadModule php5_module modules/libphp5.so
    在这里插入图片描述

Apache相关操作:

http -v 或者 rpm -qa | grep httpd 查看版本 验证是否安装成功
ps -ef | grep httpd 查看httpd所有进程
service httpd status 查看运行状态 验证是否有异常
service httpd stop 或者 systemctl stop httpd.service 服务停止
service httpd start 或者 systemctl start httpd.service 服务启动
service httpd restart 或者 systemctl restart httpd.service 服务重启

2.安装PHP及PHP-FPM

yum -y install php
yum -y install php-fpm

PHP相关操作:

php -v 或者 rpm -qa | grep php 查看版本 验证是否安装成功
ps -ef | grep php 查看php所有进程
php -m 查看php开启的相关模块
php -i 等同于php代码中的phpinfo() 查看php详细信息
service php-fpm status/stop/start/restart 或者 systemctl stop/start/restart httpd.service
查看php-fpm状态/停止/开启/重启

3.安装Mysql

  • 安装包离线安装

官网下载Mysql安装包
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
可以选择自己想要的版本
也可以使用weget命令下载(先跳转到目标文件夹 一般是/tmp下 当系统重新启动时 tmp目录下的文件都将被删除)
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

下载完成之后,解压安装包
cd /tmp
tar -xzvf /tmp/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
移动到 /usr/local目录下并修改文件名为mysql
mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
到mysql文件夹下操作
cd /usr/local/mysql
添加用户组
groupadd mysql
添加用户mysql 到用户组mysql
useradd -g mysql mysql
创建数据仓库文件夹 可以自己指定目录,我的路径是 /usr/local/mysql/data
mkdir data
配置参数 与上文的目录路径有关 这里的末尾会显示初始密码 记住它!!!
./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
权限设置 变更所属用户
chown -R mysql .
chown -R mysql data
权限设置 变更所属组
chgrp -R mysql .
复制配置文件到etc目录下
cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
再增加下权限
chmod 755 /etc/init.d/mysqld
到此配置文件修改如下两行 与上文的目录路径有关
vim /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data

  • yum在线安装
yum -y install mysql
yum -y install mysql-server
yum -y install php-mysql

启动mysql
/etc/init.d/mysql start
登录 输入上文已记住的密码,如果忘记就要重置密码了
mysql -hlocalhost -uroot -p
登录成功之后 修改密码 到这里已经是sql命令,所有指令都要已分号结尾
set password=password('123456');
修改root账户的host的地址 允许远程连接 注意防火墙设置,看是否需要开设端口
grant all privileges on *.* to 'root'@'%' identified by 'root';
flush privileges;
至此Mysql便安装完成了!

Mysql相关操作:

vim /etc/my.cnf 可以在my.cnf文件中修改各种配置信息
exit 退出mysql命令窗口
service mysql status/stop/start/restart 或者 systemctl stop/start/restart mysql.service 查看mysql状态/停止/开启/重启

拓展包安装

  • 安装Apache扩展包
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
  • 安装PHP扩展包
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
  • 安装Mysql扩展包
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

常见问题

1.Apache启动时,默认80端口占用,错误提示如下

make_sock:could not bind to address 0.0.0.0:80
no listening sockets available,shutting down
Unable to open logs

解决方案有两种:
1)停止占用80端口程序

# 查看所有端口名包含80的程序
 netstat -lnp|grep 80

这里发现是被nginx占用了
在这里插入图片描述
根据 pid 查看一下 详细信息

ps 12472

在这里插入图片描述
确认无误后杀掉进程 (kill -9相对强硬一点,系统会发出SIGKILL信号,他要求接收到该信号的程序应该立即结束运行,不能被阻塞或者忽略)

kill -9 1777

但杀死nginx一个进程之后,它会再产生一个新的,用fuser -n tcp 80命令查询之后发现有n个进程在同时执行,所以对于nginx来说,使用killall -9 nginx才能达到效果(停止nginx 会导致其挂载的应用停止运行,慎用!nginx -s reload 可重启nginx)

2)修改Apache默认端口
vim /etc/httpd/conf/httpd.conf或者直接使用FTP客户端工具打开此配置文件,修改Listen,然后重启Apache服务就可生效了
在这里插入图片描述
如果出现443端口占用问题 就前往 /etc/httpd/conf.d/ssl.conf 修改Listen再重启Apache服务

2.设置开机自启或关闭

chkconfig httpd on
chkconfig httpd off
chkconfig mysqld off
chkconfig mysqld off

3.Mysql启动报错

问题1:

/etc/init.d/mysqld: line 239: /bin/my_print_defaults: Permission denied

解决方式:
这种错误意思是在**/etc/init.d/mysqld**配置文件的第239行有错误,找到这一行对症下药即可。

问题2:

Starting MySQL ERROR! Couldn't find MySQL server (/data/mysql/bin/mysqld_safe)

解决方式:
与上文配置mysql文件处理方式相同,在**/etc/my.cnf**文件中修改这两行
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

在这里插入图片描述

4.部署完Apache+PHP之后,页面打开时只报错500,看不到提示信息

解决方案:
1)打开 php.ini(如果不知道在什么位置 ,先使用find / -name php.ini定位文件),将display_errors=off修改为display_errors=on
在这里插入图片描述
error_reporting=E_ALL(所有错误和警告都报错)
在这里插入图片描述
2)打开 /etc/httpd/conf/httpd.conf,追加两行
在这里插入图片描述
最后重启Apache,再刷新页面,就能看到提示信息展示出来了

5.页面提示错误Uncaught Error: Call to undefined function json_encode()

这个问题出现的原因是缺乏php-json拓展模块,需要安装

 #安装前准备
 yum -y install php-devel php-pear gcc make
 #安装json
 pear install pecl/json
 #往json.ini中加入一行,extension=json.so,让php支持json
 cd /etc/php.d
 echo "extension=json.so" > json.ini
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值