由于需要lamp环境又要用源码编译安装,找了些资料东拼西凑踩了很多坑,决定自己写一篇加深记忆。
博主用的是CentOS7;centos8也成功但博主并未测试
源码编译大体步骤
- 下载源码包、依赖包
- 编译依赖包,再编译所需环境参数
- make && make install
- 请确保安装lamp前系统未安装过lamp环境
安装apache2.4.1
1、下载依赖环境
apr-1.5.2:http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2
apr-util-1.5.4:http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2
pcre-8.43:https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
httpd:http://archive.apache.org/dist/httpd/httpd-2.4.1.tar.gz
2、安装apr
yum install gcc gcc-c++ -y #安装编译所依赖的开发环境
tar -xf apr-1.5.2.tar.bz2 #解压文件
cd apr-1.5.2
./configure --prefix=/usr/local/apr #make(编译之前)先使用comfigure配置下。首选配置就是指定安装目录
make && make install
3、安装apr-util
tar -xf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
yum install expat-devel #安装编译所依赖的开发环境
make && make install #编译
4、安装pcre
tar -xf pcre-8.43.tar.gz
cd pcre-8.43
./configure --prefix=/usr/local/pcre
make && make install #编译
5、安装httpd
(1)首先创建组、用户
groupadd -r apache
useradd -r -g apache apache
(2)编译安装httpd
tar -xf httpd-2.4.32.tar.gz
cd httpd-2.4.32
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
若出现**checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not
be built due to prerequisite failures**
没有安装openssl-devel
解决方法:yum install openssl-devel -y
make && make install
(3)配置apache
首先我们vi /etc/httpd/httpd.conf 打开apache的配置文件
1、搜索ServerName www.example.com:80 去掉前面的注释
2、修改apache的组别和用户,找到下面两个修改
User daemon #修改为apache
Group daemon #修改为apache
3、【网站目录不改则不用敲下面这条命令】这里自由发挥,按需更改。修改DocumentRoot到/www,以及这一行下面的一句中的<Directory到 /www 目录这个是www的根目录设置,可以随意更改你想要的目录。(更改目录后要将目录的所有者设为apache)
退出保存。--- :wq
chown -R apache:apache /www/ #这里将网站根目录权限设置为apache 按需更改!
4、cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #将apache启动文件copy到系统启动吧……
(4)关闭防火墙,这里将防火墙直接关闭并取消开机自启
systemctl stop firewall.service
systemctl disable firewall.service
httpd安装成功后我们在/usr/local/apache/bin目录下启动apache
此时可以测试httpd服务,测试之前我们在/www目录下创建好index.html文件,然后启动,在浏览器输入127.0.0.1测试
./apachectl stop #停止
./apachectl start #启动
./apachectl restart #重新启动
apache安装完成
安装mysql5.6.25
1、下载和安装
wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.25.tar.gz
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
yum install libaio libaio-devel -y
yum install perl-Data-Dumper -y
yum install net-tools -y
安装前请将 /etc/my.cnf文件删除,否则该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
tar -xf mysql-5.6.25.tar.gz
cd mysql-5.6.25
[root@localhost mysql-5.6.25]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
至此mysql编译完成
make && make install
此时mysql已经安装成功
2、配置mysql
检查系统是否已经有mysql用户,如果没有则创建
[root@localhost mysql-5.6.25]# cat /etc/passwd | grep mysql
[root@localhost mysql-5.6.25]# cat /etc/group | grep mysql
创建mysql用户(但是不能使用mysql账号登陆系统)
[root@localhost mysql-5.6.25]# groupadd mysql
[root@localhost mysql-5.6.25]# useradd mysql -s /sbin/nologin
[root@localhost mysql-5.6.25]# useradd -r -g mysql mysql
修改权限
[root@localhost mysql-5.6.25]# chown -R mysql:mysql /usr/local/mysql
此时mysql安装完毕
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表。
[root@localhost mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
注意:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
启动mysql
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
[root@localhost mysql] cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql] chkconfig mysql on
[root@localhost mysql] service mysql start #启动MySQL
查看mysql是否启动成功
[root@localhost mysql]# netstat -lntp | grep 3306
如果mysql没有启动成功,到目录/usr/local/mysql/data下查看错误日志
[root@localhost data]# tail localhost.localdomain.err (localhost.localdomain是主机名)
如果没有生成日志目录,则mysql安装没有成功(再重新编译安装一次)
重启mysql
首先杀死mysql进程
[root@localhost 3306] pkill mysqld
然后检查是否已经杀死mysql进程
[root@localhost 3306] netstat -lntp | grep 3306
此时shell没有任何输出,表明已经杀死了mysql进程
然后重启mysql并再次检查是否启动成功
[root@localhost 3306] service mysql start
[root@localhost 3306] netstat -lntp | grep 3306
已经启动了,我们登陆mysql,在/usr/local/mysql/bin目录下
[root@localhost bin] ./mysql #登陆到mysql
mysql>
由于此时的mysql是没有密码的,所以我们现在设置一个root密码,下面的123456就是更改的root密码
mysql>grant all privileges on *.* to root@localhost identified by '123456';
# 此时设置root账户密码并且全局 *.* 前面的*代表的是数据库名,后面的*代表的是表名,一般创建只需设置数据库名即可。
mysql>Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges; #更新数据库使更改生效
mysql>Query OK, 0 rows affected (0.01 sec)
此时,mysql5.6.25在CentOS7.6上完全安装并配置
安装php5.6.37
1、解决依赖关系
yum -y install bzip2-devel libmcrypt-devel libxml2-devel
安装libmcrypt-devel 需要配置epel源
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
yum clean all
yum makecache
yum install php-mcrypt libmcrypt libmcrypt-devel libxml2-devel openssl-devel libcurl-devel libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 libjpeg-turbo-devel libmcrypt-devel mysql-devel -y #安装必要组件
2、安装php
wget https://www.php.net/distributions/php-5.6.37.tar.bz2
tar -xf php-5.6.37.tar.bz2
cd php-5.6.37
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make && make install
3、修改配置
cp php.ini-production /etc/php.ini
vim /etc/httpd/httpd.conf #修改apache配置文件,将.php 加入解析。
<IfModule unixd_module>
...
User apache
Group apache
...
</IfModule>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mime_module>
...
AddType application/x-httpd-php .php
...
</IfModule>
重新启动httpd
# service httpd restart
测试php是否解析
(4)编写测试代码在/www下
测试页面index.php示例如下:
<?php
$link = mysql_connect('127.0.0.1','root','123456');
if ($link)
echo "mysql connected success.";
else
echo "mysql connected faild.";
mysql_close();
phpinfo();
?>
此时数据库连接成功,并且输出phpinfo。
此时lamp安装结束。
永远的神
宇神牛逼!!!!
tql
思路很清晰,排版好,点赞
太顶了
两个字,牛逼!!!!!!!!!!!!!
写攻略的都是大佬,排版可以呀
必须的
哥你太强了哥
哥你真厉害啊哥