Linux 配置安装 apache + mysql + php

目的就是为了配置:LAMP架构,网上的教程都是单独的并没有合起来,由于配置的环境不一样,所以有很多的问题、走了很多弯路,总结之后我决定写一个总的教程,避免后来者少走弯路。

apache版本 2.4
php版本7.4
mysql版本5.7

因为是三个合起来,所以篇幅还是有一定长度的,不过学习就是要有耐心。

1、 配置apache

apache 包在网上也可以找到很多,我这里也是提供我在网上找的一个大佬分享的资源:
链接:https://pan.baidu.com/s/1qPUO_gwXnJTk8u0xpiouVQ
提取码:ygqa
当然源码安装也是需要环境的,比如gcc gcc-c++ 、、、、、、这个我就不做过多的说明了,然后再安装的过程也不是一帆风顺的,有些包编译和安装是需要通过某个依赖包去解析的,所以你还得一步步去安装依赖包,这个教程并不能解决所有问题,但可以给你一个清晰的步骤,let’s go!
下载好包之后传到我们的系统上,最好是专门创建一个目录放置各种包

[root@wange /]# mkdir soft
[root@wange /]# cd soft
[root@wange soft]# ll
total 12988
-rw-r--r--. 1 root root 1073556 Apr 10 14:52 apr-1.6.5.tar.gz 
-rw-r--r--. 1 root root  554301 Apr 10 14:52 apr-util-1.6.1.tar.gz
-rw-r--r--. 1 root root 9177278 Apr 10 14:52 httpd-2.4.37.tar.gz
-rw-r--r--. 1 root root 1167026 Apr 10 14:52 pcre-7.7.tar.gz
-rw-r--r--. 1 root root 1315580 Apr 10 14:52 pcre-8.11.tar.gz

因为是源码安装所以这几个包的安装是顺序的,不然就会报错:

[root@wange soft]# tar -zxvf apr-1.6.5.tar.gz
[root@wange soft]# cd apr-1.6.5/
[root@wange apr-1.6.5]# ./configure --prefix=/usr/local/apr
[root@wange apr-1.6.5]# echo $?     //检测上一步的配置有没有错
0
[root@wange apr-1.6.5]# make        //编译
[root@wange apr-1.6.5]# echo $?
0
[root@wange apr-1.6.5]# make install
[root@wange apr-1.6.5]# echo $?
0

这样子就成功安装好了第一个步骤。(是一个好的开始)

[root@wange apr-1.6.5]# cd ..
[root@wange soft]# tar -zxvf apr-util-1.6.1.tar.gz
[root@wange apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@wange apr-util-1.6.1]# echo $?
0
[root@wange apr-util-1.6.1]# make
[root@wange apr-util-1.6.1]# echo $?
0
[root@wange apr-util-1.6.1]# make install
[root@wange apr-util-1.6.1]# echo $?
0

第二步完成!

[root@wange soft]# cd ..
[root@wange soft]# tar -zxvf pcre-8.11.tar.gz
[root@wange soft]# cd pcre-8.11/
[root@wange pcre-8.11]# ./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@wange pcre-8.11]# echo $?
0
[root@wange pcre-8.11]# make
[root@wange pcre-8.11]# echo $?
0
[root@wange pcre-8.11]# make install
[root@wange pcre-8.11]# echo $?
0

第三步完成!

[root@wange soft]# cd ..
[root@wange soft]# tar -zxvf httpd-2.4.37.tar.gz
[root@wange soft]# cd httpd-2.4.37/
[root@wange httpd-2.4.37]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
[root@wange httpd-2.4.37]# echo $?
0
[root@wange httpd-2.4.37]# make     //这个make会久一点,不要慌!
[root@wange httpd-2.4.37]# echo $?
0
[root@wange httpd-2.4.37]# make install
[root@wange httpd-2.4.37]# echo $?
0

好的,到这里已经成功了三分之一了,下面来看看结果!

[root@wange httpd-2.4.37]# cd /usr/local/apache/bin/
[root@wange bin]# ./apachectl start     //这里会提示你的ServerName没有设置,没事,放心!
[root@wange bin]# ps -ef | grep httpd
root      36944      1  0 15:40 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon    36945  36944  0 15:40 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon    36946  36944  0 15:40 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon    36947  36944  0 15:40 ?        00:00:00 /usr/local/apache/bin/httpd -k start
root      37032   1097  0 15:42 pts/0    00:00:00 grep --color=auto httpd

这样子我们就启动了apache服务了,默认是80端口,有需要也可以设置(因为浏览器默认访问服务器端口就是80)这时就可打开我们的浏览器输入IP访问我们的服务器了,你会看到:
在这里插入图片描述
证明你成功的配置好你的apache服务器了,那么段it works又是再哪里设置呢?/usr/local/apache/htdocs 这个目录下的index.html
什么?你无法访问页面(不好意思这个问题我也遇到过),首先前提是前面的配置没有问题:检查Linux防火墙 iptables -F清空然后再次访问。如果这样还不行的话,就换一个浏览器,我测过了Microsoft Edge 是不行的,火狐是可以的,至于为什么我就不知道了,有知道的大佬可以评论告之,谢谢啦。

2、mysql安装

mysql安装就很简单啦,这一段大概15分钟,不要急!
因为官网下载的话就很慢,我们年轻人一定要科学上网,当然可以挂VPN了,但其实老一辈的人已经为我们铺好路子了,我这里推荐一个搜狐的镜像网站http://mirrors.sohu.com,这里有很多资源可以自行取,我们这里安装mysql,弱水三千,只取mysql:
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

然后开始安装:

[root@wange htdocs]# cd /soft
[root@wange soft]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-i686.tar.gz   
// 这一段其实要大概20分钟,不过会比官网快,诶,我没骗你啊,我是说安装15分钟,没说下载哈。
[root@wange htdocs]# mv mysql-5.7.23-linux-glibc2.12-i686 /usr/local/mysql
[root@wange soft]# groupadd mysql
[root@wange soft]# useradd -r -g mysql mysql  //创建用户和组
[root@wange /]# mkidr  -p /data/mysql   //创建数据目录
[root@wange /]# chown mysql:mysql -R /data/mysql  //赋予用户权限
[root@wange /]# cd /etc/
[root@wange etc]# ll | grep my.cnf
-rw-r--r--.  1 root root    570 Jun  8  2017 my.cnf  //要配置这个文件,如果没有就创建
drwxr-xr-x.  2 root root     31 Feb 23 21:47 my.cnf.d
[root@wange etc]# vi my.cnf
再mysqld 下面加入这几个量:
bind-address=0.0.0.0
port=3306  //指定端口
user=mysql //指定用户
basedir=/usr/local/mysql //指定源目录
datadir=/data/mysql //指定数据目录
socket=/tmp/mysql.sock
 //建议不要采用默认的配置文件,可以把原来的注释掉
[root@wange etc]# cd /usr/local/mysql/bin/
[root@wange bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ 
--datadir=/data/mysql/ --user=mysql --initialize
//初始化mysql,成功了之后/data/mysql就会生成文件了
[root@wange mysql]# ll
total 110632
-rw-r-----. 1 mysql mysql       56 Apr 10 17:49 auto.cnf
-rw-r-----. 1 mysql mysql      417 Apr 10 17:49 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Apr 10 17:49 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Apr 10 17:49 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Apr 10 17:49 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 Apr 10 17:49 mysql
-rw-r-----. 1 mysql mysql      612 Apr 10 17:49 mysql.err
drwxr-x---. 2 mysql mysql     8192 Apr 10 17:49 performance_schema
drwxr-x---. 2 mysql mysql     8192 Apr 10 17:49 sys
[root@wange mysql]# cat mysql.err 
2020-04-10T09:49:54.507295Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-04-10T09:49:54.570904Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-04-10T09:49:54.627459Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a16e4aba-7b10-11ea-98a1-000c291a90cf.
2020-04-10T09:49:54.628929Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-04-10T09:49:54.629818Z 1 [Note] A temporary password is generated for root@localhost: JK3s87LYdu-j 
 //这是mysql的初始密码,复制这个
 [root@wange support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql  //把启动脚本拷到init.d目录下 
 [root@wange support-files]# service mysql start  //启动mysql
Starting MySQL. SUCCESS! 
[root@wange support-files]# ps -ef| grep mysql  //查看进程
[root@wange support-files]# vi /etc/profile  //配置环境变量
 在最后加入这一段:
 export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin //这里顺便把apache环境变量加了
 [root@wange support-files]# source /etc/profile
 [root@wange support-files]# mysql -uroot -p
Enter password:  //密码是刚才的初始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
 最后设置密码:
mysql> set password = password("123456")
    -> ;
mysql> alter user 'root'@'localhost' password expire never;
mysql> flush privileges; //不要忘了刷新权限

这样子就把mysql配置好了,是不是很简单!好吧,因人而异,我刚开始也是琢磨了好久,不过学习的快乐也是在此!
下面是最后一步了,这里建议活动下眼睛休息一两分钟,能看到这里你已经很棒了!!!

3、配置php

去官网下载包:
有的人还会用5.x,不过没有关系配置过程大相径庭,按自己喜好来吧,我这里就配置7.x的吧

https://www.php.net/distributions/php-7.4.4.tar.gz

[root@wange soft]# wget https://www.php.net/distributions/php-7.4.4.tar.gz
[root@wange soft]# tar -zxvf php-7.4.4.tar.gz
[root@wange /]# groupadd php  //创建用户和组
[root@wange /]# useradd -g php php

在安装之前要先配置环境:
yum install -y libxml-devel
yum install -y libxml2-dev
yum install libxml2-devel
yum install openssl-devel
yum install sqlite-devel
yum install libcurl-devel
yum install bzip2 bzip2-devel
yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//oniguruma5-6.9.4-1.el7.remi.x86_64.rpm
yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//oniguruma5-devel-6.9.4-1.el7.remi.x86_64.rpm
yum -y install libjpeg-devel

然后开始安装准备,为什么要准备?因为真的太多了!

./configure --prefix=/usr/local/php //这个是php的安装路径
–with-apxs2=/usr/local/apache/bin/apxs //这个是apache的apxs路径,要配置apache能解析php要用到
–with-config-file-path=/usr/local/php/etc //这个是php配置文件
–with-mysqli //php7以上将不支持mysql了,所以这里就用mysqli
下面是安装的包,因为通过yum已经安装好了就不用指定路径
–with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt
下面是一些开关,是关于php的某些功能的(这个我不是很清楚,有知道的到大佬可以评论说一下)
–enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
知道你们懒,这里我给复制了一份:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc --enable-mbstring --with-openssl --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

接下来就很简单了!

make && make install
echo $?
 没问题后继续:
 复制启动脚本:
 cd  /soft/php-7.4.4
 cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
 chmod +x /etc/init.d/php-fpm //给一个可执行权限
 cd /usr/local/php/etc
 cp php-fpm.conf.default php-fpm.conf
 vi php-fpm.conf  //去掉 pid = run/php-fpm.pid 前面的分号
 cd php-fpm.d
 cp www.conf.default www.conf
 vi www.conf  //修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组)这里修改为设定的组和用户
 /etc/init.d/php-fpm start        //php-fpm启动命令
/etc/init.d/php-fpm stop         //php-fpm停止命令
/etc/init.d/php-fpm restart        //php-fpm重启命令
ps -ef | grep php 或者 ps -A | grep -i php  //查看是否已经成功启动PHP

到这一步我们的php也配置好了,下面就是让apache支持解析php了
前提是前面的php在编译的时候设置好apxs

cd /usr/local/apache/conf 
vi httpd.conf 
//要修改四个地方
ServerName www.(本机ip).com:80
<Directory />
    AllowOverride none
    #Require all denied //把这里注释掉
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html index.php //加上index.php
</IfModule>

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php //添加这一段,加载模块用的

cd /usr/local/apache/bin
./httpd -M //加载模块,会看到有php7

到这里我们所有的配置都完成了
重启apache,看看结果

[root@wange modules]# apachectl stop
[root@wange modules]# apachectl  start
 在/usr/local/apache/htdoc下创建一个php测试文件
 vi test.php
 输入:
 <?php
	phpinfo();
?>

现在去网页上看看结果:
ip/test.php 你会看到一个php主页
在这里插入图片描述到这里就全部结束了,感谢你看到这里,希望这篇教程会对你有所帮助,虽然很长很长,但就是想做一份总的教程,分享一下经验。mysql那一部分我可能过于话多了,但是想做的尽量详细点,毕竟莫名其妙就会踩坑。如果有什么不对的欢迎留言。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值