原始碼包安裝LAMP
主機 | 作業系統 | IP | 主要軟體 |
伺服器 | Centos 7.6(X86_64) | 172.20.77.201 |
mysql-5.7.19.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檔案,在檔案最末尾新增
export
PATH=$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.log
和mysqld.pid
檔案導致無法正常啟動
解決方法:
建立檔案mysqld.log
和mysqld.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,檢視是否能正常開啟頁面