最近出於對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已經開始正常工做
設置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的安裝比較複雜易錯,注意目錄所屬用戶和組的設置