linux安裝lamp環境(linux+apache+mysql+php)

源碼安裝

本次使用php

Centos7.2
MySQL5.7.22
Apache2.4.37
PHP5.6.38

安裝Apache

安裝httpd和所需依賴:gcc, apr, apr-util,apr-iconv, pcre

# 創建目錄
cd /;mkdir -p lamp/package
cd /lamp/package

# # 獲取安裝包
# 獲取apr
wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz

# 獲取apr
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

# 獲取apr-iconv
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-iconv-1.2.2.tar.gz

# 獲取pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

# 獲取httpd (apache)
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz

# 安裝全局所需gcc和gcc-c++
yum install gcc
yum install gcc-c++

1、安裝apr

cd /lamp/package
# 解壓apr
一、tar zxvf apr-1.6.5.tar.gz

# 進入配置
二、cd apr-1.6.5
三、./buildconf

# 出現錯誤:
buildconf: checking installation...
buildconf: python version 2.7.5 (ok)
buildconf: autoconf not found.
           You need autoconf version 2.59 or newer installed
           to build APR from SVN.
buildconf: libtool not found.
           You need libtool version 1.4 or newer installed
           to build APR from SVN.
		   
# 安裝依賴libtool解決以上錯誤
	yum install libtool
	
# 安裝libtool後從新運行./buildconf

# 配置
四、./configure --prefix=/usr/local/apr-1.6.5

# 編譯安裝
五、make && make install

2、安裝apr-iconv 

cd /lamp/package
# 解壓
一、tar zxvf apr-iconv-1.2.2.tar.gz
二、cd apr-iconv-1.2.2/

# 配置
三、./configure --prefix=/usr/local/apr-iconv-1.2.2 --with-apr=/usr/local/apr-1.6.5/bin

# 編譯安裝
四、make && make install

3、安裝apr-util

cd /lamp/package
# 解壓 apr-util
一、tar zxvf apr-util-1.6.1.tar.gz

二、cd apr-util-1.6.1/

# 安裝expat-devel不然後面編譯會報錯
三、yum install expat-devel

# 配置【--with後面全是上面的安裝路徑】
四、./configure --prefix=/usr/local/apr-util-1.6.1 --with-apr=/usr/local/apr-1.6.5/bin  --with-apr-iconv=/usr/local/apr-iconv-1.2.2/bin/apriconv

# 編譯安裝
五、make && make install

4、安裝pcre

cd /lamp/package
# 解壓
一、tar zxvf pcre-8.39.tar.gz
cd pcre-8.39/

# 配置
二、./configure --prefix=/usr/local/pcre-8.39

# 編譯安裝
三、make && make install

5、安裝安裝apache(httpd)

# 安裝並更新locate工具數據庫
一、yum -y install mlocate && updatedb

# 解壓httpd
二、tar zxvf httpd-2.4.37.tar.gz
cd httpd-2.4.37

#  配置【必定要加上 enable-so】
三、./configure --prefix=/usr/local/httpd-2.4.37/ --with-apr=/usr/local/apr-1.6.5/bin --with-apr-util=/usr/local/apr-util-1.6.1/bin --with-apr-iconv=/usr/local/apr-iconv-1.2.2/bin/apriconv --with-pcre=/usr/local/pcre-8.39 --enable-so

# 如出現報錯error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build direct
	需切換到/usr/local/查看前面四個步驟安裝的依賴包是否都安裝進入了(裏面缺乏哪一個包就是哪一個包沒安裝成功)
	
# 編譯安裝
四、make && make install

# 查看是否安裝到位
五、find / -name httpd-2.4.37

# 添加到服務
# 從安裝目錄bin/下 複製apachectl 到/etc/rc.d/init.d/並命名爲httpd
六、cp /usr/local/httpd-2.4.37/bin/apachectl /etc/rc.d/init.d/httpd

# 編輯httpd, 加入下面兩句 後兩個數字表示啓動順序, 不要超100, 下面兩句是帶# 註釋的, chkconfig是能讀到的, 這兩個必需要加, Description: 這個是描述, 隨便寫
七、vim /etc/rc.d/init.d/httpd
	# chkconfig: 2345 80 81
	# Description: this is httpd server

# 添加到守護進程
八、chkconfig --add httpd

# 啓動httpd
九、service httpd start

# 出現報錯
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0 ...

# 解決辦法
1.一、cd /usr/local/httpd-2.4.37/conf;vim httpd.conf
1.二、搜索#ServerName,在下面添加一行內容(配置服務地址域名):ServerName localhost:80
1.三、保存,執行service httpd restart重啓OK
 
# 測試是否安裝成功
十、curl localhost 執行結果:<html><body><h1>It works!</h1></body></html>
 

6、後續管理

# 新建一個目錄 /myconfig/ , 之後將全部配置文件創建軟連接到此目錄, 統一管理
mkdir /myconfig
# 爲httpd.conf 建立軟鏈接
ln -s /usr/local/httpd-2.4.37/conf/httpd.conf  /myconfig/httpd.conf

【經常使用啓動、中止等管理命令】
service httpd start/restart/stop|status

安裝PHP

# 1、安裝php依賴(在命令後面加--setopt=protected_multilib=false的緣由是出現了相似錯誤(多庫衝突):Protected multilib versions: zlib-1.2.7-17.el7.x86_64 != zlib-1.2.7-15.el7.i686)
一、yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel --setopt=protected_multilib=false

# 獲取PHP安裝包
二、http://php.net/downloads.php # 本次下載的是(php-5.6.38.tar.gz)

# 上傳並解壓PHP
三、tar zxvf php-5.6.38.tar.gz

# 配置開啓須要開啓的擴展好比,pdo, mysql gd 並將php作爲apache的模塊 --apxs2=指向apache bin下的apxs程序 
cd php-5.6.38/
四、./configure --prefix=/usr/local/php-5.6.38/ --with-apxs2=/usr/local/httpd-2.4.37/bin/apxs  --with-mysql   --with-pdo-mysql  --with-gd

# 查看perl位置
五、whereis perl 
	[root@VM_0_13_centos php-5.6.38]# whereis perl
	perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz
	
# 更新apache的bin/apxs 文件 將第一行改成perl的位置
# 將apxs中的第一行改成上面第5不查找的perl路徑(要是內容跟上面查找的路徑同樣可省略這一步),示例以下:
六、vim /usr/local/httpd-2.4.37/bin/apxs 
	#!/usr/bin/perl -w

# 編譯安裝(確認還php-5.6.38裏面)
七、make && make install

# 建立php簡潔命令
八、vim /etc/profile
	export php=" /usr/local/php-5.6.38/bin/php" # 最後加上這一行(後面用到$php等同於 /usr/local/php-5.6.38/bin/php)

# 生效環境變量
九、source /etc/profile

# 查看PHP信息(出現以下內容說明安裝成功)
十、$php -m
	hash
	iconv
	json
	libxml
	mysql
	mysqlnd
	pcre
	PDO
	pdo_mysql
	...

# php與apache的綁定(讓apache去解析PHP文件)
編輯apache主配置文件httpd.conf(上面安裝Apache建立的myconfig中)
十一、vim /myconfig/httpd.conf
	Addtype application/x-httpd-php .php .phtml #在底部添加這行內容

# 重啓Apache
十二、service httpd restart 

# 測試是否關聯OK
# 在站點目錄寫一個php測試文件
1三、cd /usr/local/httpd-2.4.37/htdocs/

1四、touch index.php;vim index.php
	<?php phpinfo();?> # 加入這段內容
	
1四、訪問localhost/index.php 就能夠看到php頁面了

### date區出現警告處理, 配置php時區 ###
# 拷貝php配置文件
從php源碼中複製 php.ini-production(前面本身下載的安裝包在哪就去哪cp)到php安裝目錄的lib目錄下更名爲php.ini
cp /lamp/package/php-5.6.38/php.ini-production /usr/local/php-5.6.38/lib/php.ini
 
# 備份php.ini
cp /usr/local/php-5.6.38/lib/php.ini /usr/local/php-5.6.38/lib/php.ini.bak
 
# 建立軟鏈接到前面安裝Apache時建立的myconfig方便管理
ln -s /usr/local/php-5.6.38/lib/php.ini /myconfig/php.ini

vim /myconfig/php.ini
	# 搜索date.timezone,在下面添加一行內容
	date.timezone=PRC

# 重啓Apache   OK	
service httpd restart

安裝MySQL

1、安裝依賴

# gcc, gcc-c++, ncurses-devel, cmake(配置的工具mysql配置不用configure,用cmake)
一、yum install cmake ncurses-devel

# 安裝boost mysql5.7以上依賴boost
二、mkdir /usr/local/boost

三、cd /usr/local/boost/

# 下載 boost
四、wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

# 解壓boost
五、tar zxvf boost_1_59_0.tar.gz

2、安裝MySQL

# 獲取MySQL安裝包
cd /usr/local/

六、wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz

# 解壓MySQL
七、tar zxvf mysql-5.7.22.tar.gz

# 配置安裝位置與數據庫data位置
# mysql 5.7須要指定boost(就是上面的安裝路徑) -DWITH_BOOST=/usr/local/boost, mysql5.6及如下不須要
cd mysql-5.7.22/
八、cmake . -DWITH_BOOST=/usr/local/boost   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.22 -DMYSQL_DATADIR=/usr/local/mysql-5.7.22/data  

# 編譯安裝
九、make && make install

# 可能出現如下錯誤(內存不足)
	c++: internal compiler error: Killed (program cc1plus)
	Please submit a full bug report,
	with preprocessed source if appropriate.
	See <http://bugzilla.redhat.com/bugzilla> for instructions.
	make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 4
	make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
	make: *** [all] Error 2

	# 解決方法就是建立臨時交換空間swap:
	sudo dd if=/dev/zero of=/swapfile bs=64M count=16
	sudo mkswap /swapfile
	sudo swapon /swapfile
	## 編譯結束以後想要恢復的話能夠執行下面的命令:
	sudo swapoff /swapfile
	sudo rm /swapfile
	
	## 執行以上命令後從新執行第8個和第9個編譯安裝步驟
	
# 漫長等待...

# 修改文件權限,添加獨立用戶僅管理(mysql)
# 添加MySQL分組,建立MySQL用戶並加入MySQL組
十、groupadd mysql && useradd -g mysql mysql

# 修改mysql程序權限, 把組改爲mysql,用戶也改爲mysql
# 在/usr/local/目錄執行 
# 將mysql目錄及文件的用戶跟組修改成mysql
十一、chown -R mysql:mysql mysql-5.7.22/

	執行前:
	[root@VM_0_13_centos local]# ls -l | grep mysql
	drwxr-xr-x  42 7161 31415     4096 Nov 26 12:08 mysql-5.7.22

	執行後(如下能夠看到用戶和組都修改成MySQL了):
	[root@VM_0_13_centos local]# ls -l | grep mysql
	drwxr-xr-x  42 mysql mysql     4096 Nov 26 12:08 mysql-5.7.22
	
# 初始化用戶信息前先刪除(這裏選擇改個名留着說不定哪年能用上)/etc/my.cnf 配置文件
十二、mv /etc/my.cnf /etc/my.cnf.bak
 
# 初始化用戶信息
	# mysql5.6 使用下面的
	# /scripts/mysql_install_db --user=mysql 
	 
	# mysql5.7 建議使用的
	1三、/usr/local/mysql-5.7.22/bin/mysqld  --initialize
		初始化結束後, 會隨機生成一個root的密碼,記住它後續用到:root@localhost: M0%o>gw24zto # 本次生成的隨機密碼
	
# 確認是否初始化成功
1四、ls /usr/local/mysql-5.7.22/data #有東西就證實成功了

# 初始化完成後, mysql目錄下除了data目錄保留mysql用戶,把其它目錄統統改成root用戶
cd /usr/local
1五、chown -R root:root mysql-5.7.22/ && chown -R mysql:mysql mysql-5.7.22/data/
	drwxr-x---  5 mysql mysql   4096 Nov 26 12:42 data
	drwxr-xr-x  3 root  root   4096 Nov 26 11:11 dbug
	drwxr-xr-x  2 root  root   4096 Nov 26 12:08 docs
	drwxr-xr-x  2 root  root   4096 Nov 26 10:36 Docs
	...

# 配置mysql
# 建立配置文件(直接vim不建立也能夠)
1六、touch /etc/my.cnf;vim /etc/my.cnf
	添加以下內容(根據本身需求可改):
		[client]
		port=3306
		socket=/tmp/mysql.sock
		 
		[mysqld]
		port=3306
		socket=/tmp/mysql.sock
		key_buffer_size=16M
		max_allowed_packet=8M
		 
		[mysqldump]
		quick

# 運行mysqld_safe服務
1七、/usr/local/mysql-5.7.22/bin/mysqld_safe --user=mysql &
 
# 查看進程
1八、ps -e | grep mysqld

#建立快速訪問命令
1九、vim /etc/profile
    export mysql= /usr/local/mysql-5.7.22/bin/mysql # 添加一個變量(後面使用$mysql等同於 /usr/local/mysql-5.7.22/bin/mysql)
    source /etc/profile:生效環境變量

# 鏈接mysql
20、$mysql -uroot -p
	[root@VM_0_13_centos mysql-5.7.22]# /usr/local/mysql-5.7.22/bin/mysql -uroot -p
	Enter password:  #<-----------------------------------------------------------------------這裏輸入上面的上面隨機生成的root密碼(M0%o>gw24zto)
	Welcome to the MySQL monitor.  Commands end with ; or \g.
	Your MySQL connection id is 2
	Server version: 5.7.22

	Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

	Oracle is a registered trademark of Oracle Corporation and/or its
	affiliates. Other names may be trademarks of their respective
	owners.

	Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

	mysql>

# 進入MySQL後執行命令修改密碼
	# mysql5.6 以下:
	# update mysql.user set password=password('新的密碼') where user='root';
	 
	# mysql5.7 以下:
	2一、alter user 'root'@'localhost' identified by '123456'; # 123456爲新的密碼

# 刷新權限 5.7不須要
# flush privileges
2二、quit 退出, 就能夠用新密碼登陸了

# 將其加入守護進程(開機自啓)
# 複製/mysqld.server 到/etc/rc.d/init.d/
2三、cp /usr/local/mysql-5.7.22/support-files/mysql.server /etc/rc.d/init.d/mysqld

# 修改權限
2四、chmod a+rx /etc/rc.d/init.d/mysqld 

# 添加到守護進程管理
2五、chkconfig --add mysqld

# 查看
2六、chkconfig --list mysqld

# 測試用守護進程管理方式,停用跟啓用
	[root@VM_0_13_centos ~]# service mysqld stop
	Shutting down MySQL.... SUCCESS!
	[root@VM_0_13_centos ~]# service mysqld start
	Starting MySQL. SUCCESS!

3、安裝phpmyadmin

# 獲取安裝包
一、wget https://files.phpmyadmin.net/phpMyAdmin/4.8.1/phpMyAdmin-4.8.1-all-languages.zip

# 複製到站點根目錄
二、cp phpMyAdmin-4.8.1-all-languages.zip /usr/local/httpd-2.4.37/htdocs/

# 進入站點根目錄, 解壓
三、cd /usr/local/httpd-2.4.37/htdocs/
四、unzip phpMyAdmin-4.8.1-all-languages.zip

# 更名爲phpmyadmin
五、mv phpMyAdmin-4.8.1-all-languages phpmyadmin

# 訪問站點(點登錄管理)
六、localhost/phpmyadmin/index.php   # OK
	登錄的用戶名是前面建立mysql的root用戶
	登錄密碼是root密碼上面使用的是123456
	
4、後續管理

# 爲mysql的配置文件建立軟鏈接方便後續管理
# 放入咱們安裝httpd(Apache)時在跟目錄建立的myconfig文件夾
ln -s  /etc/my.cnf  /myconfig/mysql.conf

原文地址html

yum安裝

centos6.5

更新yumpython

[root@localhost ~]# yum -y update

安裝Apache

[root@localhost ~]# yum -y install httpd*

一、安裝完成後,用 /etc/init.d/httpd start 啓動apache
二、設置Apache爲開機啓動:chkconfig httpd on
注:sever默認本機80端口
若是須要修改:mysql

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
更改成ServerName ip:端口c++

測試是否安裝成功:訪問本機ip

若是不能訪問修改防火牆配置 :web

方式一:添加.容許訪問端口80(不少文章都說能夠可是個人centos6.5未成功)sql

[root@localhost ~]# vim /etc/sysconfig/iptables  # 添加以下內容
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

方式二:關閉防火牆
零時關閉防火牆(重啓時失效)數據庫

service iptables stop

永久關閉防火牆(能夠訪問了,注意安全<-_->)apache

chkconfig --level 35 iptables off

可能須要:json

service iptables start  # 啓動防火牆
service iptables restart  # 重啓防火牆

安裝MySQL

[root@localhost ~]# yum install mysql mysql-server mysql-devel

完成後,用 /etc/init.d/mysqld start 啓動mysql

一、設置mysql密碼

[root@localhost ~]# mysql
mysql> use mysql; 
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root'; 
mysql> FLUSH PRIVILEGES;  # 刷新緩存
mysql> exit;

可能出現報錯:

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

報錯解決辦法

修改密碼(若是須要):

[root@localhost ~]# mysqladmin -uroot -p舊密碼 password 新密碼

二、設置mysql容許遠程登陸

[root@localhost ~]# mysql -uroot -p123456
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
mysql> FLUSH PRIVILEGES;
mysql> exit;

三、設置mysql開機啓動

[root@localhost ~]# chkconfig mysqld on

安裝php

[root@localhost ~]# yum install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

重啓Apache

[root@localhost ~]# /etc/init.d/httpd restart

測試

在 /var/www/html/新建個info.php文件,寫入如下內容:

<? 
phpinfo(); 
?>

測試是否安裝成功:訪問本機ip/info.php

centos7安裝

centos7安裝詳解

注意:其中 2.3 數據庫安全設置時Enter current password for root (enter for none): 直接回車便可,回車後會讓輸入一個mariadb的root用戶新密碼。

相關文章
相關標籤/搜索