Centos7 搭建LAMP環境(編譯安裝)


1、查看系統版本

[niemx@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

2、安裝軟件准備

(1)apr-1.5.2.tar.bz2

Apache可移植運行時(APR)是Apache web服務器的支持庫。它提供了一組映射到底層操作系統(OS)的應用程序編程接口(api)。如果操作系統不支持特定的功能,APR將提供一個仿真。因此,程序員可以使用APR使程序跨不同平台進行移植。APR對於Tomcat最大的作用就是socket調度。

下載地址http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2

(2)apr-util-1.5.4.tar.bz2

apr-util和apr都是為上層應用提供的運行庫。為沒有stl庫的C語言提供了一些數據結構和操作系統封裝接口。顯然apache的許多軟件都是以apr/apr-util為基礎庫進行開發的。apr-util只是在apr的基礎上提供了更多的數據結構和操作系統封裝接口而已。

下載地址http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2

(3)pcre-8.43.tar.gz

PCRE(PerlCompatibleRegularExpressions)是一個Perl庫,包括perl兼容的正則表達式庫。這些在執行正規表達式模式匹配時用與Perl5同樣的語法和語義是很有用的。httpd編譯過程需要依賴於pcre-devel軟件包。

下載地址https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

(4)httpd-2.4.41.tar.gz

httpd為Apache HTTP服務器程序。直接執行程序可啟動服務器的服務。

下載地址http://www.apache.org/dist/httpd/httpd-2.4.41.tar.gz

(5)mysql-5.6.25.tar.gz

先查看linux版本,下載mysql源碼包時要選擇對應的系統的源碼包。

[niemx@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

下載地址https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46.tar.gz

(6)php-5.6.37.tar.bz2

下載地址https://www.php.net/distributions/php-5.6.37.tar.bz2

**直接在linux中下載源碼包可能比較慢,可以在windows中下載好,然后安裝lrzsz,使用SecureCRT傳輸到linux服務器**

3、編譯安裝apache

(1)安裝apr

# tar -xjvf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
(2)安裝apr-util
# tar -xjvf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
(3)安裝pcre
# tar -zxvf pcre-8.43.tar.gz
# cd pcre-8.43
# ./configure --prefix=/usr/local/pcre
# make && make install
(4)創建用戶、組
# groupadd -r apache
# useradd -r -g apache apache
(5)安裝httpd
# tar -zxvf httpd-2.4.41.tar.gz
# cd httpd-2.4.41
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
出現如下錯誤:
**checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures**
沒有安裝openssl-devel
解決方式:yum install openssl-devel
然后重新執行./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
#make && make install
(6)配置apache並設置開機啟動
# vi /etc/httpd/httpd.conf
(1)搜索ServerName www.example.com:80 去掉前面的注釋
(2)修改DocumentRoot到/home/htdocs,以及這一行下面的一句中的<Directory到/home/htdocs 這個是www的根目錄設置
# mkdir -p /home/htdocs 
# cp /usr/local/apache/htdocs/index.html /home/htdocs
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# vi httpd 在第一行下添加如下兩行文字(#!/bin/sh下面)
# chkconfig: 2345 90 90 #注意前面要加上#號
# description:http server #注意前面要加上#號
注冊該服務
# chkconfig --add httpd #所有開機模式下自啟動
# chkconfig httpd on #345開機模式下自啟動
(7)關閉防火牆,驗證apache是否安裝成功
查看防火牆狀態
# systemctl status firewalld.service
臨時關閉防火牆
# systemctl stop firewalld.service
永久關閉防火牆
# systemctl status firewalld.service
啟動apache
# /usr/local/apache/bin/apachectl start
瀏覽器訪問服務器IP地址,出現“It works”表示apache安裝成功
關閉apache
# /usr/local/apache/bin/apachectl stop
4、編譯安裝MySQL
(1)創建用戶、組
# mkdir /usr/local/mysql
# mkdir /home/data
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /home/data mysql
# chown -R mysql:mysql /home/data
# chown -R mysql:mysql /usr/local/mysql
(2)安裝
從mysql5.5起,mysql源碼安裝開始使用cmake了,設置源碼編譯配置腳本
# yum -y install cmake
# yum -y install ncurses-devel
# tar -xzvf mysql-5.6.46.tar.gz
# cd mysql-5.6.46
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/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=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make && make install
(3)初始化mysql數據庫
拷貝啟動的服務腳本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
改變環境變量
# echo 'PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
修改配置文件
# vim /etc/my.cnf

[mysqld]
server_id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
log_bin=/usr/local/mysql/mysql-bin
log_error=/var/log/mysql.log
character-set-server=utf8

[client]
socket=/usr/local/mysql/mysql.sock

忘記mysql的登錄密碼了
vi /etc/my.cnf
在最后一行添加上:skip-grant-tables
保存退出,重啟mysql,
mysql>use mysql;

mysql> UPDATE user SET authentication_string= password ( 'root' ) WHERE User = 'root' ;//單引號內的字符即使需要設置的新密碼(無password字段的版本)

mysql>update user set password=password('root') where user='root';(有password字段的版本)

mysql>quit;

刪除/etc/my.cnf文件里面的“skip-grant-tables”。最后重啟,輸入新密碼就可以了。

5、編譯安裝PHP

(1)解決依賴關系

# yum -y install bzip2-devel libmcrypt-devel libxml2-devel

安裝libmcrypt-devel 需要配置epel源

# rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm

# yum clean all

# yum makecache

# yum update

# yum install -y libmcrypt-devel

(2)安裝php

# tar -xjvf php-5.6.37.tar.bz2

# cd php-5.6.37

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

# make && make install

(3)修改配置

# cp php.ini-production /etc/php.ini

# vim /etc/httpd/httpd.conf

<IfModule unixd_module>

...

User apache
Group apache

...

</IfModule>

<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

<IfModule mime_module>

...

AddType application/x-httpd-php  .php

...

</IfModule>

重新啟動httpd

# service httpd restart

------------------------------------------------------------------

**/usr/local/apache/bin/apachectl: line 95: lynx: command not found**

錯誤解決方式: # yum install lynx -y

-----------------------------------------------------------------

(4)編寫測試代碼

測試頁面index.php示例如下:
    <?php
      $link = mysql_connect('127.0.0.1','root','root');
      if ($link)
        echo "mysql connected success.";
      else
        echo "mysql connected faild.";
      mysql_close();
      phpinfo();
    ?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM