1. 程式人生 > 實用技巧 >原始碼包安裝LAMP

原始碼包安裝LAMP

主機 作業系統 IP 主要軟體
伺服器 Centos 7.6(X86_64) 172.20.77.201

mysql-5.7.19.tar.gz
php-7.1.24.tar.gz
httpd-2.4.37.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
pcre-8.41.tar.gz
boost_1_59_0.tar.gz

一、安裝mysql

說明:由於安裝MySQL5.7需要先安裝boost1.59及以上版本,所以要先安裝boost

1.解壓 boost並拷貝 boost 到 /usr/local/boost 目錄

[root@localhost src]# tar -zxvf boost_1_59_0.tar.gz

[root@localhost src]# cp -r boost_1_59_0 /usr/local/boost

2.安裝編譯所需的常用元件和依賴包

[root@localhost src]# yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake

3.建立執行mysql服務的使用者mysql(-M引數表示不建立使用者家目錄 )

[root@localhost src]# useradd --system -M -s /sbin/nologin mysql

4.解壓MySQL,進入 mysql-5.7.19 目錄

[root@localhost src]# tar -zxvf mysql-5.7.19.tar.gz

[root@localhost src]# cd mysql-5.7.19/

5.新建MySQL安裝所需要目錄

[root@localhost mysql-5.7.19]# mkdir -p /usr/local/mysql/{data,logs,pids}

6.修改 /usr/local/mysql 目錄所有者許可權

[root@localhost mysql]# chown mysql:mysql /usr/local/mysql

7.使用cmake命令進行編譯

[root@localhost mysql]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

cmake編譯完成後,如下圖所示

8.使用make命令進行編譯(注意:此過程等待時間較長,具體看伺服器硬體配置)

[root@localhost mysql-5.7.19]# make

編譯完成,如下圖所示

9.編譯完成後執行 make install 進行安裝

[root@localhost mysql-5.7.19]# make install

安裝完成如下圖所示

10.將mysql新增到環境變數,修改/etc/profile檔案,在檔案最末尾新增

exportPATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

更新配置檔案:source /etc/profile

11.初始化資料庫, –initialize 表示預設生成一個安全的密碼,–initialize-insecure 表示不生成密碼

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

12.將mysql服務檔案拷貝到/etc/init.d/目錄,並給出執行許可權

[root@localhost mysql-5.7.19]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.7.19]# chmod a+x /etc/init.d/mysqld

13.將MySQL服務加入開機啟動項

[root@localhost mysql-5.7.19]# chkconfig --add mysqld
[root@localhost mysql-5.7.19]# chkconfig mysqld on
[root@localhost mysql-5.7.19]# chkconfig --list | grep mysqld

14.修改/etc/my.cnf檔案,編輯配置檔案如下,僅供參考

15.啟動mysql

問題錯誤:

由於缺少mysqld.logmysqld.pid檔案導致無法正常啟動

解決方法:

建立檔案mysqld.logmysqld.pid

[root@localhost mysql-5.7.19]# touch /usr/local/mysql/logs/mysqld.{log,pid}

修改 /usr/local/mysql 的許可權

[root@localhost mysql-5.7.19]# chown mysql:mysql -R /usr/local/mysql/

16.再次啟動mysql

[root@localhost logs]# service mysqld start
Starting MySQL. SUCCESS!

17.檢視mysql是否啟動成功

18.測試連線mysql

19.檢視資料庫,如果看到以下幾個資料庫說明資料庫初始化成功

20.進入資料庫檢視使用者表

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,user,password from user;
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

問題錯誤:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

解決方案:

由於MySQL 5.7版本下的mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string,查詢時使用authentication_string欄位即可

21.由於初始化資料庫沒有設定密碼,所以root密碼為空,不安全,不推薦,設定一下密碼

設定密碼(推薦),注意此方法必須使用flush privileges拿令重新整理一下許可權才能生效

二、安裝配置apache

1.安裝apache依賴包
[root@localhost src]# yum -y install make gcc gcc-c++ openssl openssl-devel expat-devel

2. 安裝apache依賴包apr

[root@localhost src]# tar -zxvf apr-1.6.2.tar.gz

[root@localhost src]# cd apr-1.6.2/

[root@localhost apr-1.6.2]# ./configure --prefix=/usr/local/apr

[root@localhost apr-1.6.2]# make&&make install

3.安裝apache依賴包apr-util

[root@localhost src]# tar -zxvf apr-util-1.6.0.tar.gz

[root@localhost src]# cd apr-util-1.6.0/

[root@localhost apr-util-1.6.0]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config

[root@localhost apr-util-1.6.0]# make&&make install

4.安裝apache依賴包pcre

[root@localhost src]# tar -zxvf pcre-8.41.tar.gz

[root@localhost src]# cd pcre-8.41/

[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre

[root@localhost pcre-8.41]#make&&make install

5安裝apache

[root@localhost src]# tar -zxvf httpd-2.4.37.tar.gz

[root@localhost src]# cd httpd-2.4.37/

[root@localhost httpd-2.4.37]#./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=event
[root@localhost httpd-2.4.37]# make&&make install

#將apache加入系統服務

[root@localhost httpd-2.4.37]# cp /usr/local/apache/bin/apachectl /etc/init.d/

[root@localhost httpd-2.4.37]# chmod a+x /etc/init.d/apachectl

配置apache系統服務指令碼,便於使用systemctl管理apache服務

[root@localhost httpd-2.4.37]# vim /usr/lib/systemd/apache.service

[Unit]
Description=apache
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/apachectl start
ExecReload=/etc/init.d/apachectl restart
ExecStop=/etc/init.d/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost httpd-2.4.37]# chmod 754 /usr/lib/systemd/apache.service

#啟動apache服務

[root@localhost httpd-2.4.37]# /etc/init.d/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

#檢視服務是否啟動成功

[root@localhost httpd-2.4.37]# netstat -tlnp|grep 80
tcp6 0 0 :::80 :::* LISTEN 86087/httpd

#檢視apache服務程序

[root@localhost httpd-2.4.37]# ps -aux|grep apache
root 86087 0.0 0.1 72812 2284 ? Ss 14:20 0:00 /usr/local/apache/bin/httpd -k start
daemon 86088 0.0 0.1 363860 2144 ? Sl 14:20 0:00 /usr/local/apache/bin/httpd -k start
daemon 86089 0.0 0.1 363860 2140 ? Sl 14:20 0:00 /usr/local/apache/bin/httpd -k start
daemon 86090 0.0 0.1 429396 2676 ? Sl 14:20 0:00 /usr/local/apache/bin/httpd -k start

#將apache服務加入開機啟動項

[root@localhost httpd-2.4.37]# systemctl enable apache
Created symlink from /etc/systemd/system/multi-user.target.wants/apache.service to /usr/lib/systemd/system/apache.service.

#新增並修改apache服務啟動的使用者

[root@localhost httpd-2.4.37]# useradd -M --system -s /sbin/nologin apache
[root@localhost httpd-2.4.37]# vim /usr/local/apache/conf/httpd.conf

166 User apache
167 Group apache

#修改apache服務安裝目錄許可權的所有者

pache/

#重啟並測試apache能否開啟預設主頁

[root@localhost httpd-2.4.37]# systemctl restart apache

[root@localhost httpd-2.4.37]# curl 127.0.0.1
<html><body><h1>It works!</h1></body></html>

三、配置PHP

1.安裝php依賴包

[root@localhost src]#yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c php-pear
2.解壓並配置PHP編譯環境

[root@localhost src]# tar -zxvf php-7.1.24.tar.gz

[root@localhost src]# cd php-7.1.24/

[root@localhost php-7.1.24]#./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-curl --with-gd --enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/usr/local/php/etc/ --with-mysqli=mysqlnd --with-mysql-sock=/usr/local/mysql/mysql.sock --enable-maintainer-zts
3.編譯並安裝php

[root@localhost php-7.1.24]# make&&make install

4.複製php配置檔案到php安裝目錄/usr/local/php下

[root@localhost php-7.1.24]# cp /usr/local/src/php-7.1.24/php.ini-production /usr/local/php/php.ini

5.修改apache配置檔案以便支援php

[root@localhost php-7.1.24]#vim /usr/local/apache/conf/httpd.conf

394 AddType application/x-httpd-php .php
395 AddType application/x-httpd-php-source .phps

6.apache的web目錄新增一個php檔案,測試一下php是否正常

[root@localhost ~]# vim /usr/local/apache/htdocs/index.php

<?php
phpinfo();
?>

7.防火牆放行80埠

[root@localhost ~]# firewall-cmd --permanent --add-port=80/tcp

[root@localhost ~]# firewall-cmd --reload

8. 在客戶端瀏覽器,訪問web頁面http://172.20.77.201/index.php,檢視是否能正常開啟頁面