Linux 搭建web環境

一、環境準備html

1.一、準備好linux服務器,這個選擇有不少java

1.二、下載好Xshell、Xftp,www.netsarang.com/zh。這個在下載的時候選擇「免費的家庭和學校版」 便可,雖然對打開頁籤數量有限制不過應該已經夠用了。node

二、安裝JDKmysql

2.1 Oracle官網找到jdk的下載地址 www.oracle.com/technetwork…,本次經過rpm 安裝因此須要下載一個64位的rpm包,100多M 應該下載的比較快linux

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"
https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm
複製代碼

2.二、rpm -qa | grep jdk ,查看系統安裝過的JDK,而後卸載sodu yum remove xxx (xxx爲 查詢後的jdk),我是新環境什麼都沒有安裝過因此不須要了。nginx

2.三、添加執行權限c++

chmod 777 jdk-8u201-linux-x64.rpm
複製代碼

2.四、執行rpm進行安裝web

rpm -ivh --prefix=/usr/local/jdk/ jdk-8u201-linux-x64.rpm
複製代碼

我經過‘--prefix’指定了一下安裝目錄redis

2.五、查看JDK是否安裝成功sql

java -version

複製代碼

2.六、編輯環境變量

vim /etc/profile
複製代碼

編輯配置文件,命令:i 進入編輯模式,最後面加入以下代碼
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

複製代碼

按esc,而後輸入命令 :wq! , 回車 強制保存退出

讓profile當即生效

source /etc/profile
複製代碼

2.七、查看JDK安裝狀況

javac:

echo $PATH:查看本身剛剛設置的環境變量配置是否都正確

至此jdk 安裝完成,過程比較簡單

三、安裝tomcat

3.一、下載tomcat 壓縮包

在下載地址,選擇想要下載的壓縮包

http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.93/bin/
複製代碼
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.93/bin/apache-tomcat-7.0.93.tar.gz
複製代碼

3.二、解壓

tar -zxvf apache-tomcat-7.0.93.tar.gz
複製代碼

3.三、配置一下tomcat的環境變量置,進入tomcat的bin目錄後經過vim命令打開catalina.sh文件,加入以下配置

export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-7.0.93
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-7.0.93
export JRE_HOME=/usr/local/jdk/jdk1.8.0_201-amd64/jre
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201-amd64

複製代碼

3.四、若是想要改tomcat的訪問端口,進入tomcat的conf目錄下,修改server.xml文件

3.五、啓動tomcat,切換到tomcat的bin目錄輸入啓動命令

./startup.sh
複製代碼

由於前面已經關閉防火牆了,因此能夠直接訪問 http://192.0.0.179:8088/

查看tomcat 日誌 tomcat 日誌的日誌文件在logs 目錄下面

#實時查看日誌文件 最後20行
tail -n 20 -f logs/catalina.out
複製代碼

四、安裝redis

4.一、首先上官網下載Redis 壓縮包,地址:redis.io/download

wget http://download.redis.io/releases/redis-5.0.3.tar.gz
複製代碼

4.二、解壓redis

tar zxvf redis-5.0.3.tar.gz
複製代碼

4.三、進入到解壓後的路徑

cd redis-5.0.3
複製代碼

4.四、編譯

make
複製代碼

注意若是要是報「/bin/sh: cc: command not found」 這個錯,就先安裝gcc環境

yum install gcc
複製代碼

若是還要是報

則更改make命令,爲

make MALLOC=libc
複製代碼

4.五、編譯完成後進入 src 目錄進行安裝

cd src
make install
複製代碼

4.六、配置

關於bind

翻看網上的文章,此處多翻譯爲"指定 redis 只接收來自於該 IP 地址的請求,若是不進行設置,那麼將處理全部請求,在生產環境中最好設置該項"。這種解釋會 totally 搞糊塗初學者,甚至是錯誤的。該處的英文原文爲:

If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. 
bind 127.0.0.1
複製代碼

該處說明 bind 的是interface,也就是說是網絡接口。服務器能夠有一個網絡接口(通俗的說網卡),或者多個。打個比方說機器上有兩個網卡,分別爲 192.168.205.5 和 192.168.205.6,若是 bind 192.168.205.5,那麼只有該網卡地址接受外部請求,若是不綁定,則兩個網卡口都接受請求。

OK,不知道講清楚沒有,在舉一個例子。在我上面的實驗過程當中,我是將bind項註釋掉了,實際上我還有一種解決方案。因爲我redis服務器的地址是 192.168.1.4 。若是我不註釋bind項,還有什麼辦法呢?我能夠作以下配置:

bind 192.168.1.4
複製代碼

這裏不少人會誤覺得綁定的ip應該是請求來源的ip。其實否則,這裏應該綁定的是你redis服務器自己接受請求的ip。


Redis默認不是以守護進程的方式運行,能夠經過該配置項修改,使用yes啓用守護進程
daemonize yes
複製代碼

redis的連接端口

port 6379
複製代碼

表示是否須要密碼登錄 註釋掉就是不用密碼

requirepass 123456
複製代碼

咱們在配置完了這個redis.conf以後 最好用conf來運行redis-server,默認路徑conf在redis-server的上層

./redis-server ../redis.conf
複製代碼

4.七、服務端啓動成功後,執行redis-cli啓動Redis 客戶端

redis-cli
複製代碼

測試redis 啓動成功

./redis-cli #默認是6379端口
複製代碼

指定端口的方式:

./redis-cli -p 6380
複製代碼

若是須要密碼:

./redis-cli -p 6380 -a 你的密碼
複製代碼

客戶端連接成功後執行‘shutdown’命令,服務器就關閉了

五、安裝nginx

5.一、安裝編譯工具及庫文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
複製代碼

5.二、安裝 PCRE

PCRE 做用是讓 Nginx 支持 Rewrite 功能。

下載 PCRE 安裝包,下載地址: downloads.sourceforge.net/project/pcr…

cd /usr/local/src/

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
複製代碼

解壓安裝包:

tar zxvf pcre-8.35.tar.gz
複製代碼

進入安裝包目錄

cd pcre-8.35
複製代碼

編譯安裝

./configure

make && make install
複製代碼

查看pcre版本

pcre-config --version
複製代碼

5.三、安裝Nginx

下載 Nginx,下載地址:http://nginx.org/download/nginx-1.6.2.tar.gz

wget http://nginx.org/download/nginx-1.6.2.tar.gz
複製代碼

解壓安裝包:

tar zxvf nginx-1.6.2.tar.gz
複製代碼

進入安裝包目錄

cd nginx-1.6.2
複製代碼

編譯安裝

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35

make

make install
複製代碼

查看nginx版本

/usr/local/webserver/nginx/sbin/nginx -v
複製代碼

至此nginx安裝完成。

5.四、Nginx 配置

#user nobody;
worker_processes  2;

error_log  logs/error.log crit;
#error_log logs/error.log notice;
#error_log logs/error.log info;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log logs/access.log main;

    sendfile        on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout  65;

    #gzip on;


    #須要代理的服務器列表,weight=n 可設置權重 
    upstream mynginx{
        server 192.0.0.179:8088;  
    }

    server {
        listen  8888;#監聽端口
        server_name  192.0.0.179;#監聽域名或ip

        #charset koi8-r;

        #access_log logs/host.access.log main;

        location / {
            //該指令設置與upstream server的鏈接超時時間,有必要記住,(這個超時不能超過75秒?),默認60s
            proxy_connect_timeout 75s;
            
            //該指令設置與代理服務器的讀超時時間。它決定了nginx會等待多長時間來得到請求的響應。這個時間不是得到整個response的時間,而是兩次reading操做的時間,默認爲60s
            proxy_read_timeout 3600s;
            
            //這個指令設置了發送請求給upstream服務器的超時時間。超時設置不是爲了整個發送期間,而是在兩次write操做期間。若是超時後,upstream沒有收到新的數據,nginx會關閉鏈接.默認60s
            proxy_send_timeout 3600s;
            
            root   html;
            index  index.html index.htm;
            proxy_pass  http://mynginx;
        }

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

複製代碼

檢查配置文件nginx.conf的正確性命令:

/usr/local/webserver/nginx/sbin/nginx -t
複製代碼

Nginx 啓動命令以下:

/usr/local/webserver/nginx/sbin/nginx
複製代碼

從新載入配置文件

/usr/local/webserver/nginx/sbin/nginx -s reload   
複製代碼

重啓 Nginx

/usr/local/webserver/nginx/sbin/nginx -s reopen
複製代碼

中止 Nginx

/usr/local/webserver/nginx/sbin/nginx -s stop
複製代碼

Nginx啓動以後,訪問站點進行測試,地址是上面配的server_name,端口是listen,192.0.0.179:8888

六、安裝Mysql(5.6版本)

也是找了不少教程,tar 包解壓安裝老是出問題,也不知道是否是打開方式不對,索性就使用yum 安裝了,一次成功。

6.一、檢查系統中是否已安裝 MySQL

rpm -qa | grep mysql
複製代碼

返回空值的話,就說明沒有安裝 MySQL 若是要是有就先移除之前的版本。

6.二、查看已安裝的 mysql 數據庫版本。

rpm -qa|grep -i mysql
複製代碼

6.三、卸載已安裝的 mysql 數據庫。

rpm -qa|grep mysql|xargs rpm -e --nodeps
複製代碼

6.四、下載rpm 安裝包文件。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
複製代碼

6.五、安裝rpm 包

rpm -ivh mysql-community-release-el7-5.noarch.rpm
複製代碼

安裝完成以後,會在 /etc/yum.repos.d/ 目錄下新增 mysql-community.repo 、mysql-community-source.repo 兩個 yum 源文件。

執行 yum repolist all | grep mysql 命令查看可用的 mysql 安裝文件。

6.六、安裝mysql

若是安裝5.7版本須要進行下面兩步操做,5.6版本直接跳過這兩步

禁用MySQL5.6的源
yum-config-manager --disable mysql56-community
啓用MySQL5.7的源
yum-config-manager --enable mysql57-community-dmr

若是報錯:yum-config-manager: command not found
這個是由於系統默認沒有安裝這個命令,這個命令在yum-utils 包裏,能夠經過命令「 yum -y install yum-utils 」 安裝就能夠了。
複製代碼

安裝MySQL 服務

yum install mysql-server
複製代碼

6.七、檢查mysql是否安裝成功

rpm -qa | grep mysql
複製代碼

6.八、啓動 mysql 服務

systemctl start mysqld.service #啓動 mysql
systemctl restart mysqld.service #重啓 mysql
systemctl stop mysqld.service #中止 mysql
systemctl enable mysqld.service #設置 mysql 開機啓動

複製代碼

6.九、設置密碼

mysql5.6 安裝完成後,它的 root 用戶的密碼默認是空的,咱們須要及時用 mysql 的 root 用戶登陸(第一次直接回車,不用輸入密碼),並修改密碼。

mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("這裏輸入root用戶密碼") where User='root';
mysql> flush privileges; 
複製代碼

5.7 的版本貌似加入了不少安全機制,這裏修改密碼先要臨時修改一下密碼設置

查看臨時密碼:安裝完成後的臨時密碼,在/var/log/mysqld.log文件中

grep "A temporary password"  /var/log/mysqld.log
複製代碼

mysql -u root -p
set global validate_password_policy=0; 
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '*********';
複製代碼

6.十、設置遠程主機登陸

爲root 用戶添加遠程登陸的能力:

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
複製代碼

到此MySQL安裝完成,測試鏈接沒有問題。

6.十一、關閉大小敏感 通常配置文件在 etc 下

進這個目錄 vim /etc/my.cnf 加上

lower_case_table_names = 1
複製代碼

一行就能夠了;

開放防火牆某個端口:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

相關文章
相關標籤/搜索