CentOS7配置LAMP環境(PHP7.2.1+MySQL5.6.39+Apache2.4.29)源碼安裝超詳細步驟

最近出於對linux服務器的學習,在安裝配置的過程當中遇到了各類問題,也上網看了許多相關文章,如今終於弄好了,特寫此教程向你們分享,也爲本身留下學習筆記。php

注:若是系統以前已配置過LAMP運行環境,記得先將以前的版本卸載,防止安裝過程當中出現各類莫名其妙的問題,本教程爲全新的CentOS7最小化安裝版。html

【服務器配置】node

配置網絡參數,爲服務器分配靜態ip方便遠程登陸管理。mysql

 1 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
 2 TYPE="Ethernet"
 3 BOOTPROTO="static"
 4 IPADDR="192.168.43.171"
 5 NETMASK="255.255.255.0"
 6 GATEWAY="192.168.43.1"
 7 NM_CONTROLLED=no  8 DEFROUTE="yes"
 9 IPV4_FAILURE_FATAL="no"
10 IPV6INIT="yes"
11 IPV6_AUTOCONF="yes"
12 IPV6_DEFROUTE="yes"
13 IPV6_FAILURE_FATAL="no"
14 IPV6_ADDR_GEN_MODE="stable-privacy"
15 NAME="ens33"
16 UUID="f52d1397-768e-426c-9a29-9b80600cb181"
17 DEVICE="ens33"
18 ONBOOT="yes"

重啓網絡服務linux

1 [root@localhost ~]# systemctl restart network.service

此時可經過 ip addr  命令查看當前網絡配置,而後 ping 網關是通的, ping 百度域名www.baidu.com又不通,緣由在於沒有配置dnsnginx

修改配置文件,添加dns參數c++

1 [root@localhost ~]# vi /etc/NetworkManager/NetworkManager.conf
2 dns=none

修改resolv.conf,添加dns配置sql

1 [root@localhost ~]# vi /etc/resolv.conf 
2 nameserver 192.168.43.1

此時再次 ping 百度域名www.baidu.com就能正常返回數據了。數據庫

開放防火牆端口(SSH遠程鏈接22端口)apache

1 [root@localhost ~]# firewall-cmd --zone=public --add-port=22/tcp --permanent

重啓防火牆服務

1 [root@localhost ~]# systemctl restart firewalld.service

安裝 vim

1 [root@localhost ~]# yum install vim -y

安裝 wget

1 [root@localhost ~]# yum install wget -y

 

【安裝Apache】

下載 apache 及相關組件 apr、apr-util、pcre

1 [root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.29.tar.gz 2 [root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz 3 [root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz 4 [root@localhost ~]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz

安裝編譯所需工具及依賴庫

1 [root@localhost ~]# yum install gcc gcc++ gcc-c++ libxml2 libxml2-devel expat-devel -y

解包並作相關配置

1 [root@localhost ~]# tar -zxvf httpd-2.4.29.tar.gz 2 [root@localhost ~]# tar -zxvf apr-1.6.3.tar.gz 3 [root@localhost ~]# tar -zxvf apr-util-1.6.1.tar.gz 4 [root@localhost ~]# tar -zxvf pcre-8.41.tar.gz 5 [root@localhost ~]# mv apr-1.6.3 apr 6 [root@localhost ~]# mv apr-util-1.6.1 apr-util 7 [root@localhost ~]# mv apr apr-util httpd-2.4.29/srclib

安裝 pcre

1 [root@localhost ~]# cd pcre-8.41
2 [root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre8
3 [root@localhost pcre-8.41]# make 4 [root@localhost pcre-8.41]# make install

開始 apache 編譯配置,完成後執行安裝

1 [root@localhost ~]# cd httpd-2.4.29
2 [root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2 -with-pcre=/usr/local/pcre8/bin/pcre-config -with-included-apr
3 [root@localhost httpd-2.4.29]# make 4 [root@localhost httpd-2.4.29]# make install

開放防火牆端口並重啓防火牆服務(HTTP協議80端口)

1 [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
2 [root@localhost ~]# systemctl restart firewalld.service

添加 apache 開機啓動服務

 1 [root@localhost ~]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd  2 [root@localhost ~]# vim /etc/init.d/httpd  3 
 4 在在#!/bin/sh後面加入下面兩行  5 #chkconfig:345 85 15
 6 #description: Start and stops the Apache HTTP Server.  7 
 8 [root@localhost ~]# chmod +x /etc/rc.d/init.d/httpd  9 [root@localhost ~]# chkconfig --add httpd
10 [root@localhost ~]# chkconfig httpd on

查看服務是否添加成功,啓動 apache 服務

1 [root@localhost ~]# chkconfig --list httpd
2 [root@localhost ~]# systemctl start httpd.service

此時在瀏覽器中輸入對應ip地址,將顯示以下提示,表示Apache已經開始正常工做 

It works!

設置Apache支持PHP

 1 [root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf  2 找到<IfModule unixd_module>  在該行前面添加  LoadModule php7_module modules/libphp7.so
 3 按圖片-1位置添加內容  4 AddType application/x-httpd-php .php  5 AddType application/x-httpd-php-source .php5  6 
 7 接着找到  8 <IfModule dir_module>
 9  DirectoryIndex index.html 10 </IfModule>
11 修改成 12 <IfModule dir_module>
13  DirectoryIndex index.html index.php 14 </IfModule>
15 
16 找到 17 DocumentRoot "/usr/local/apache2/htdocs"
18 <Directory "/usr/local/apache2/htdocs">
19 修改成 20 DocumentRoot "/home/www"
21 <Directory "/home/www">
22 此處 /home/www 爲你自定義的網站根目錄,設置效果如圖片-2

                圖片-1

                  圖片-2

保存退出後建立網站根目錄

1 [root@localhost ~]# mkdir /home/www

重啓Apache服務

1 [root@localhost ~]# systemctl restart httpd.service

 注意:此時Apache重啓後仍然沒法解析php,緣由爲 modules/libphp7.so 文件不存在,當安裝完PHP後就能正常解析。

【安裝PHP】

下載 php 並解包

1 [root@localhost ~]# wget http://am1.php.net/get/php-7.2.1.tar.gz/from/this/mirror
2 [root@localhost ~]# tar -zxvf mirror

切換至解包好的目錄並執行編譯配置(--enable-fpm 是爲了配合能使用 nginx)

1 [root@localhost ~]# cd php-7.2.1/
2 [root@localhost php-7.2.1]# ./configure --prefix=/usr/local/php7 --enable-fpm --with-apxs2=/usr/local/apache2/bin/apxs

編譯配置完成後執行編譯,最後執行安裝

1 [root@localhost php-7.2.1]# make
2 [root@localhost php-7.2.1]# make install

此時重啓Apache後便可在 /home/www 目錄中自行建立php文件進行測試訪問 

 

【安裝MySQL】

查找並卸載 mariadb

1 [root@localhost ~]# rpm -qa | grep mariadb 2 [root@localhost ~]# rpm -e --nodeps 包名

進行安裝前準備工做

1 [root@localhost ~]# groupadd mysql 2 [root@localhost ~]# useradd -r -g mysql mysql 3 [root@localhost ~]# mkdir -p /data/mysql 4 [root@localhost ~]# mkdir /usr/local/mysql 5 [root@localhost ~]# mkdir /var/lib/mysql

下載 mysql 並解包( 5.7.5以上版本需安裝對應 boost)

1 [root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.39.tar.gz 2 [root@localhost ~]# tar -zxvf mysql-5.6.39.tar.gz

安裝編譯工具及依賴

1 [root@localhost ~]# yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper -y

執行編譯及安裝

 1 [root@localhost ~]# cd mysql-5.6.39/
 2 [root@localhost mysql-5.6.39]# cmake \  3 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  4 -DMYSQL_DATADIR=/data/mysql \  5 -DMYSQL_USER=mysql \  6 -DSYSCONFDIR=/etc \  7 -DWITH_MYISAM_STORAGE_ENGINE=1 \  8 -DWITH_INNOBASE_STORAGE_ENGINE=1 \  9 -DWITH_MEMORY_STORAGE_ENGINE=1 \ 10 -DWITH_READLINE=1 \ 11 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ 12 -DMYSQL_TCP_PORT=3306 \ 13 -DENABLED_LOCAL_INFILE=1 \ 14 -DWITH_PARTITION_STORAGE_ENGINE=1 \ 15 -DEXTRA_CHARSETS=all \ 16 -DDEFAULT_CHARSET=utf8 \ 17 -DDEFAULT_COLLATION=utf8_general_ci 18 [root@localhost mysql-5.6.39]# make 19 [root@localhost mysql-5.6.39]# make install

ps:編譯安裝的步驟耗時會比較長,耐心等待一會  ^_^

設置目錄全部者和組

1 [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql 2 [root@localhost ~]# chown -R mysql:mysql /data/mysql 3 [root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

初始化 mysql 數據庫

1 [root@localhost ~]# cd /usr/local/mysql 2 [root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql

此時會在 /usr/local/mysql 目錄下生成一個 my.cnf 的配置文件

設置 mysql 配置文件

 1 [root@localhost ~]# cp /usr/local/mysql/my.cnf /etc/my.cnf  2 [root@localhost ~]# vim /etc/my.cnf  3 若是直接使用這份配置文件,也可不執行第一條複製命令,直接執行第二條命令新建 my.cnf 配置文件  4 如下爲 my.cnf 配置文件的內容  5 
 6 # For advice on how to change settings please see  7 # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html  8 
 9 [client] 10 port = 3306
11 socket = /var/lib/mysql/mysql.sock 12 
13 [mysqld] 14 
15 # Remove leading # and set to the amount of RAM for the most important data 16 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. 17 # innodb_buffer_pool_size = 128M 18 
19 # Remove leading # to turn on a very important data integrity option: logging 20 # changes to the binary log between backups. 21 # log_bin 22 
23 # These are commonly set, remove the # and set as required. 24  basedir = /usr/local/mysql 25  datadir = /data/mysql 26  port = 3306
27  server_id = 1
28  socket = /var/lib/mysql/mysql.sock 29 
30 # Remove leading # to set options mainly useful for reporting servers. 31 # The server defaults are faster for transactions and fast SELECTs. 32 # Adjust sizes as needed, experiment to find the optimal values. 33  join_buffer_size = 128M 34  sort_buffer_size = 2M 35  read_rnd_buffer_size = 2M 36 
37 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

將 mysql 執行命令添加到PATH

1 [root@localhost ~]# vim /etc/profile 2 在文件末尾添加如下內容 3 PATH=$PATH:/usr/local/mysql/bin 4 export PATH 5 保存退出後執行如下命令 6 [root@localhost ~]# source /etc/profile

將 mysql 添加爲系統服務並設置開機啓動

1 [root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 2 [root@localhost ~]# chkconfig --add mysqld
3 [root@localhost ~]# chkconfig mysqld on 4 [root@localhost ~]# chkconfig --list mysqld

啓動 mysql 服務

1 [root@localhost ~]# service mysqld start

此時若是出現如下錯誤

1 Starting MySQL... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).

處理錯誤情況

1 [root@localhost ~]# vim /etc/init.d/mysqld 2 找到如下位置 3 basedir=
4 datadir=
5 修改成對應的路徑 6 basedir='/usr/local/mysql'
7 datadir='/data/mysql'
8 保存退出後執行如下命令 9 [root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

從新啓動 mysql 服務

1 [root@localhost ~]# service mysqld start 2 Starting MySQL. SUCCESS!

此時已提示 mysql 啓動成功

設置 mysql 密碼

1 [root@localhost ~]# mysqladmin -u root -p password 2 Enter password:此處由於沒原密碼,直接回車 3 New password:輸入新密碼 4 Confirm new password:再次輸入確認密碼

登陸 mysql

1 [root@localhost ~]# mysql -uroot -p 2 Enter password:輸入密碼,回車

設置遠程登陸用戶

1 遠程登陸用戶名爲root,密碼爲1234 2 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION; 3 mysql>flush privileges;

開放防火牆端口並重啓防火牆服務(MySQL服務3306端口)

1 [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
2 [root@localhost ~]# systemctl restart firewalld.service

此時就能夠經過其餘計算機遠程鏈接到此服務器的MySQL數據庫啦~

源碼安裝就是比較複雜點,如今整個服務器的LAMP運行環境已所有安裝完畢 ^_^

值得注意的是MySQL的安裝比較複雜易錯,注意目錄所屬用戶和組的設置

相關文章
相關標籤/搜索