源碼編譯部署LAMP環境

選擇源碼編譯安裝軟件有以下幾個原因:

  1. 滿足不同的運行平臺。linux發行版衆多,但是每個版本採用的軟件或者內核版本都不一樣,而而二進制包所依賴的環境不一定能夠正常運行,所以大部分軟件直接提供源碼。
  2. 方便定製所需的模塊,滿足不同的需求。大多數二進制代碼都是一鍵裝完所有,自由度並不高;而源碼編譯需要安裝哪個模塊都是可以自由定製的。
  3. 方便運維人員和開發人員的維護。我們的源碼是可以打包二進制的,但是對於這個軟件的打包都會有一 份代價不小的額外工作,包括維護,所以如果是源碼的話,軟件產商會直接維護,但是如果是二進制的話, 一般都是Linux 發行商提供!

安裝和配置apache

準備環境:

yum -y install make gcc gcc-c++ openssl openssl-devel

分別編譯安裝一下依賴包
注:httpd2.4版本以後要求apr的版本爲1.5以上

apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz 、 pcre-8.41.tar.gz

[root@localhost ~]# tar xf apr-1.6.2.tar.gz -C /usr/local/src/	 
[root@localhost ~]# cd /usr/local/src/apr-1.6.2/ 
[root@localhost apr-1.6.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.2]# make && make install

[root@localhost ~]# tar xf apr-util-1.6.0.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/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 -j 8 && make install

報錯解決:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

yum install -y expat

[root@localhost ~]# tar xf pcre-8.41.tar.gz -C /usr/local/src/
[root@localhost ~]#cd /usr/local/src/pcre-8.41/
[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre [root@localhost pcre-8.41]# make && make install

編譯安裝apache

[root@localhost ~]# tar zxvf httpd-2.4.37.tar.gz -C /usr/local/src/ [root@localhost ~]# cd /usr/local/src/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
make && make install

報錯:make[1]: Leaving directory `/root/httpd-2.4.41/support’

解決
把你下載的apr、apr-util複製到/root/httpd-2.4.41/srclib/apr(apr-util)在重新./configure make make install

生成啓動腳本

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

寫個httpd系統服務啓動腳本,以754的權限保存此文件

cat >/etc/systemd/system/httpd.service<<EOF
[Unit]
Description=httpd
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/httpd start
ExecReload=/etc/init.d/httpd restart
ExecStop=/etc/init.d/httpd stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

單獨創建一個用戶來運行服務

useradd -M -s /sbin/nologin www

修改vim /usr/local/apache/conf/httpd.conf的166行的User爲www

編譯安裝mysql

注:mysql從5.7版本後boost是必須的,建議把系統自帶的boost卸載掉,其中cmake的版本不低於2.8

安裝依賴包

yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel

添加用戶和組

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin -r -g mysql mysql

解壓源碼包

[root@localhost ~]# tar xf mysql-boost-5.7.28.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/mysql-5.7.28

創建數據目錄和安裝目錄

[root@localhost ~]# mkdir -p /var/lib/mysql/data
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

編譯安裝MySQL

[root@localhost ~]# cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql \
-DMYSQL_DATADIR=/var/lib/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=utf8mb4 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/mysql-5.7.28/boost/boost_1_59_0/

[root@localhost ~]# make
[root@localhost ~]# make install

編輯配置文件

[root@localhost ~]# vim /etc/my.cnf
[mysqld] port=3306
user=mysql basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
socket=/tmp/mysql.sock
character-set-server=utf8
log-error=/var/log/mysqld.log
[mysql] socket=/tmp/mysql.sock

配置環境變量

[root@localhost ~]# vim /etc/profile.d/mysql.sh
PATH=/var/lib/mysql/bin:$PATH
[root@localhost ~]# source /etc/profile.d/mysql.sh

生成服務啓動腳本

[root@localhost ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

初始化數據庫

[root@localhost ~]# mysqld --defaults-file=/etc/my.cnf --initialize

編譯安裝php

安裝epel源

[root@localhost ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

安裝所需依賴

[root@localhost ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype freetype-devel gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel libjpeg-devel freetype-devel libmcrypt-devel

解壓文件

[root@localhost ~]# tar xf php-7.1.24.tar.gz -C /usr/local/src

[root@localhost ~]# cd /usr/local/src/php-7.1.24/
[root@localhost ~]# ./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=/etc/ \
–with-mysqli=mysqlnd \
–with-mysql-sock=/tmp/mysql.sock \
–enable-maintainer-zts
[root@localhost ~]# make && make install

生成配置文件

cp /php.ini.production /etc/php.ini

編輯apache的配置文件以支持php的文件

vim /usr/local/apache/conf/httpd.conf

在393行後添加

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

測試是否可以連接mysql

<?php $mysqli = new mysqli("localhost", "root", "123456"); if(!$mysqli) { echo"database error"; }else{ echo"php連接mysql successful"; } $mysqli->close(); phpinfo(); ?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章