博主許久不更,最近在準備考試。LAMP目前最為成熟的一種企業網站應用模式,可提供動態Web站點應用及開發環境,以下就是博主搭建的整個環境,斷斷續續準備了好久。
一般來說,我們軟體的安裝方式有 yum (rpm),和原始碼編譯兩種方式。選擇原始碼編譯安裝軟體有以下幾個原因:
LAMP 是指Linux(作業系統)+ Apache (HTTP 伺服器)+ MySQL(資料庫)和 PHP(網路程式語言)目前最為成熟的一種企業網站應用模式,可提供動態Web
Linux、Apache、 MySQL、PHP/Perl/Python
成本低廉
可客製化、易於開發
方便易用、安全和穩定
####編譯安裝HTTP服務####
#####安裝Apache所需軟體#####
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
#apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz(工具)是跨平臺的元件包
http://apache.org/dyn/closer.cgi
通過Xftp 匯入檔案到/opt目錄下
[root@server4 ~]# cd /opt/
[root@server4 opt]# ll
總用量 8020
-rw-r--r--. 1 root root 1071074 10月 8 18:46 apr-1.6.2.tar.gz
-rw-r--r--. 1 root root 565507 10月 8 18:46 apr-util-1.6.0.tar.gz
-rw-r--r--. 1 root root 6567926 10月 8 18:46 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
apr-1.6.2.tar.gz //MAC記錄與埠掃描指令碼
apr-util-1.6.0.tar.gz //pxe.txt
httpd-2.4.29.tar.bz2 //開發系統監控指令碼.txt
[root@server4 opt]# tar xf apr-1.6.2.tar.gz
[root@server4 opt]# tar xf apr-util-1.6.0.tar.gz
[root@server4 opt]# tar xf httpd-2.4.29.tar.bz2
#將跨平臺的元件包移動到原始碼包目錄下去執行裡面的功能
[root@server4 opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@server4 opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@server4 opt]# ls httpd-2.4.29/srclib/
apr apr-util Makefile.in
手工安裝要預先裝環境
gcc ###C語言的編譯器
gcc-c++ ###C++的編譯器
make ###原始碼編譯(原始碼轉換成二進位制檔案)
pcre-devel ###支援正規表示式
expat-devel ###網站解析HTML檔案
perl ###perl編譯器
[root@server4 opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl
#省略內容
[root@localhost opt]# cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \ #指定將 httpd 服務程式安裝到哪個目錄下,如/usr/local/httpd
--enable-so \ #啟用動態載入模組支援,使 httpd 具備進一步擴充套件功能的能力。
--enable-rewrite \ #啟用網頁地址重寫功能,用於網站優化及目錄遷移維護。
--enable-charset-lite \ #啟動字元集支援,以便支援使用各種字元集編碼
--enable-cgi #啟用 CGI 指令碼程式支援,便於擴充套件網站的應用存取能力。
make && make install #時間較長,可以先make -j3 然後make install -j3是你核心數,最大不要超過虛擬機器器的核心數
[root@server4 httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@server4 httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@server4 ~]# httpd -v #檢視HTTP版本
Server version: Apache/2.4.29 (Unix)
Server built: Oct 8 2020 19:49:11
[root@server4 httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@server4 httpd-2.4.29]# vi /etc/init.d/httpd
新增下面兩行
# chkconfig: 35 85 21 #35級別自動執行 第85個啟動 第21個關閉
# description: Apache is a World Wide Web server
chkconfig --add httpd #新增為系統服務
chkconfig --list httpd #檢視http服務自啟狀態 該輸出結果只顯示Sysv服務,
#並不包含原生 systemd 服務。SysV 設定資料可能被原生 systemd 設定覆蓋
[root@server4 httpd-2.4.29]# vi /etc/httpd.conf
ServerName www.tom.com:80 #更改域名
[root@server4 ~]# systemctl restart httpd
[root@server4 ~]# netstat -anpt | grep httpd
tcp6 0 0 :::80 :::* LISTEN 121903/httpd
客戶機新增對映
[root@server3 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.158.40 www.tom.top #末行新增
[root@server3 ~]# useradd -s /sbin/nologin mysql
[root@server3 ~]# yum -y install \
ncurses \
ncurses-devel \ #ncurses是字元終端螢幕控制的基本庫
bison \ #用於自動生成語法分析器的程式
cmake #跨平臺編譯安裝工具
檢視軟體包
[root@server3 ~]# cd /opt/
[root@server3 opt]# ll
drwxr-xr-x. 38 7161 31415 4096 10月 11 20:54 mysql-5.7.20
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定將 mysql 資料庫程式安裝到某目錄下,如目錄/usr/local/ mysql。
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定通訊端檔案的儲存路徑,資料庫連線的檔案
-DSYSCONFDIR=/etc \ #指定初始化引數檔案目錄
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \ #指定預設使用的字元集編碼,如 utf8。
-DDEFAULT_COLLATION=utf8_general_ci \ #適用於 UTF-8 字元集的通用規則。
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安裝INNOBASE儲存引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安裝ARCHIVE儲存引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝ARCHIVE儲存引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安裝FEDERATED儲存引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
#若要明確指定不編譯某儲存引擎,可以使用類似如下的選項:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 不啟用或不編譯EXAMPLE儲存引擎
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
#如若要編譯進其它功能,如SSL等,則可使用類似如下選項來實現編譯時使用某庫或不使用某庫:
-DWITH_READLINE=1
-DWITH_SSL=system #表示使用系統上的自帶的SSL庫
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
#其它常用的選項:
-DMYSQL_TCP_PORT=3306 #設定預設埠的
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #MySQL程序間通訊的通訊端的位置
-DENABLED_LOCAL_INFILE=1 #是否啟動原生的LOCAL_INFILE
-DEXTRA_CHARSETS=all #支援哪些額外的字元集
-DDEFAULT_CHARSET=utf8 #預設字元集
-DDEFAULT_COLLATION=utf8_general_ci #預設的字元集排序規則
-DWITH_DEBUG=0 #是否啟動DEBUG功能
-DENABLE_PROFILING=1 #是否啟用效能分析功能
注意:如果在CMAKE的過程中有報錯—
當報錯解決後,需要把原始碼目錄中的CMakeCache.txt檔案刪除,然後再重新CMAKE,否則錯誤依舊
注意:make: *** No targets specified and no makefile found. Stop.解決方法
1、wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
2.、tar zxvf ncurses-5.6.tar.gz
3、 ./configure -prefix=/usr/local -with-shared-without-debug
4、make
5、make install
[root@server3 opt]# make -j3 && make install #不要超過虛擬機器器的核心數
[root@server3 opt]# chown -R mysql:mysql /usr/local/mysql/
[root@server3 opt]# vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
#儲存退出
[root@server3 etc]# chown mysql:mysql /etc/my.cnf
[root@server3 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@server3 ~]# echo 'export PATH' >> /etc/profile
#新增到組態檔
[root@server3 ~]# source /etc/profile #命令不重新啟動生效
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \
--user=mysql \ #指定使用者 這邊不建立使用者就會報錯
--basedir=/usr/local/mysql \ #資料庫服務所在位置
--datadir=/usr/local/mysql/data #資料庫位置
[root@server3 ~]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@server3 ~]# systemctl enable mysqld
[root@server3 ~]# systemctl start mysqld
[root@server3 ~]# systemctl status mysqld
[root@server3 ~]# netstat -anpt|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 80307/mysqld
mysqladmin -u root -p password 「abc123」 //剛開始沒密碼是空的直接回車,然後輸入密碼abc123,在此確認abc123,這是在root賬戶下執行的
mysql -u root -p ##這個命令敲下,提示要輸入密碼,這個就是剛才設定的密碼abc123
[root@server3 ~]# mysqladmin -uroot -p123123 password 111111
mysql> create database student ; #分號不能忘記,建立資料庫(student為資料庫名)
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myadm |
| mysql |
| performance_schema |
| student |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql> exit
Bye
以上mysql就安裝就成功了
[root@server3 ~]# yum -y install \
> libjpeg \
> libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 \
> libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel
[root@server3 ~]# cd /opt
[root@server3 opt]# tar xf php-7.1.10.tar.bz2
[root@server3 opt]# cd php-7.1.10
./configure \
--prefix=/usr/local/php \ #指定將 PHP 程式安裝到哪個目錄下
--with-apxs2=/usr/local/httpd/bin/apxs \ #設定 Apache HTTP Server 提供的 apxs 模組支援程式的檔案位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \ #指定mysql的mysql.sock位置
--with-mysqli \ #mysqli擴充套件技術不僅可以呼叫MySQL的儲存過程、處理MySQL事務,而且還可以使存取資料庫工作變得更加穩定。
--with-zlib \ #支援zlib功能--壓縮流
--with-curl \ #開啟curl擴充套件功能
--with-gd \ #啟用gd庫的支援
--with-jpeg-dir \ #要啟用 jpeg 的支援
--with-png-dir \ #要啟用png的支援
--with-freetype-dir \
--with-openssl \
--enable-mbstring \ #啟用多位元組字串功能,以便支援中文等程式碼。
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
[root@server3 ~]# make && make install
[root@server3 ~]# cp php.ini-development /usr/local/php/lib/php.ini #將php.ini-development開發樣板,複製到生產環境中去
[root@server3 ~]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
[root@server3 ~]# /usr/local/php/bin/php -m #驗證安裝的模組
[root@server3 ~]# vi /etc/httpd.conf #在合適位置新增
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
[root@server3 ~]# rm -f /usr/local/httpd/htdocs/index.html
[root@server3 ~]# vi /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
[root@server3 ~]# systemctl restart httpd
[root@server3 myadm]# cd /opt/
[root@server3 opt]# ls
phpMyAdmin-4.7.6-all-languages.zip
unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/
mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php
vi config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1';
#把localhost 改成IP 31行
http://192.168.158.30/myadm
使用root 以及前面為root設定的密碼登入管理系統。可以對資料庫進行管理操作了
以上就搭建完成了。真的斷斷續續做了好久
如果對您有用的話,點個三連吧,求求啦!