linux系統下開發環境安裝與配置
安裝系統環境
CentOS 6.8 64位
jdk版本
7u80 64位
Tomcat版本
Tomcat7
maven版本
Apache Maven 3.6.0
vsftpd版本
vsftpd-2.2.2-24.el6.x86_64
Nginx版本
nginx-1.14.2
mysql版本
mysql-server-5.1.73-8.el6_8.x86_64
git版本
git version 2.18.0
阿里源配置
#備份 [root@192 yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #下載新的CentOS-Base.repo 到/etc/yum.repos.d/ [root@192 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo #生成快取 [root@192 yum.repos.d]# yum makecache
設定開機時關閉防火牆
[root@192 vsftpd]# chkconfig iptables off
jdk安裝
下載
清理系統預設自帶jdk
[root@192 yum.repos.d]# rpm -qa | grep jdk java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 [root@192 yum.repos.d]# yum remove java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 [root@192 yum.repos.d]# yum remove java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
授權
[root@192 soft]# chmod 777 jdk-7u80-linux-x64.rpm
安裝
[root@192 soft]# rpm -ivh jdk-7u80-linux-x64.rpm
預設安裝路徑/user/java
jdk配置環境變數,編輯/etc/profile
檔案,末尾追加
#jdk export JAVA_HOME=/usr/java/jdk1.7.0_80 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使得/etc/profile
檔案立即生效
[root@192 apache-maven-3.6.0]# source /etc/profile
Tomcat安裝
下載
解壓
[root@192 soft]# tar -zxvf apache-tomcat-7.0.93.tar.gz -C /opt/module/
Tomcat配置環境變數,編輯/etc/profile
檔案,末尾追加
#tomcat
export CATALINA_HOME=/opt/module/apache-tomcat-7.0.93
export PATH=$PATH:$CATALINA_HOME/bin
使得/etc/profile
檔案立即生效
[root@192 apache-maven-3.6.0]# source /etc/profile
配置UTF-8字符集,進入Tomcat安裝的conf
資料夾,編輯server.xml
檔案,找到配置8080預設埠的位置,在xml節點末尾增加URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
啟動Tomcat,進入/opt/module/apache-tomcat-7.0.93/bin
目錄,執行./startup.sh
訪問http://192.168.1.104:8080/
Maven安裝
下載
解壓
[root@192 soft]# tar -zxvf apache-maven-3.6.0-bin.tar.gz -C /opt/module/
Maven配置環境變數,編輯/etc/profile
檔案,末尾追加
#maven
export MAVEN_HOME=/opt/module/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin
使得/etc/profile
檔案立即生效
[root@192 apache-maven-3.6.0]# source /etc/profile
驗證
[root@192 apache-maven-3.6.0]# mvn -version
vsftpd安裝
安裝
[root@192 apache-maven-3.6.0]# yum -y install vsftpd
檢視是否已安裝
[root@192 apache-maven-3.6.0]# rpm -qa | grep vsftpd
vsftpd-2.2.2-24.el6.x86_64
預設配置檔案/etc/vsftpd/vsftpd.conf
建立虛擬使用者
根目錄下建立ftp資料夾
[root@192 vsftpd]# cd /
[root@192 /]# mkdir ftpfile
新增匿名使用者
[root@192 /]# useradd ftpuser -d /ftpfile/ -s /sbin/nologin
修改ftpfile許可權
[root@192 /]# chown -R ftpuser.ftpuser /ftpfile/
重設ftpuser密碼
[root@192 /]# passwd ftpuser
將剛剛新增的虛擬使用者新增到此配置檔案中
[root@192 ~]# cd /etc/vsftpd/
[root@192 vsftpd]# vim chroo_list
[root@192 bin]# cat /etc/vsftpd/chroo_list
ftpuser
編輯配置檔案/etc/vsftpd/vsftpd.conf
,末尾追加
local_root=/ftpfile
anon_root=/ftpfile
use_localtime=YES
anonymous_enable=no
登入驗證的時候出現500提示,編輯/etc/selinux/config
檔案,設定SELINUX=disabled
[root@192 vsftpd]# vim /etc/selinux/config
如果還報500,執行
[root@192 vsftpd]# setsebool -P ftp_home_dir 1
設定開啟啟動vsftpd服務
[root@192 vsftpd]# chkconfig vsftpd on
訪問ftp://192.168.1.104/
安裝Nginx
下載
安裝依賴gcc、pcre、zlib、openssl
[root@192 vsftpd]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
解壓
[root@192 soft]# tar -zxvf nginx-1.14.2.tar.gz -C /opt/module/
編譯安裝
[root@192 nginx-1.14.2]# pwd
/opt/module/nginx-1.14.2
[root@192 nginx-1.14.2]# ./configure
[root@192 nginx-1.14.2]# make
[root@192 nginx-1.14.2]# make install
檢視Nginx安裝目錄、版本
[root@192 nginx-1.14.2]# whereis nginx
nginx: /usr/local/nginx
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.14.2
測試配置檔案nginx.conf
的正確性
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -t
啟動Nginx
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx
[root@192 nginx-1.14.2]# ps -ef | grep nginx
root 5606 1 0 01:02 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 5607 5606 0 01:02 ? 00:00:00 nginx: worker process
root 5626 2868 0 01:09 pts/0 00:00:00 grep nginx
停止Nginx
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -s stop
訪問http://192.168.1.104/
Nginx配置虛擬域名
配置虛擬域名對映
[root@192 vhost]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#centos
#192.168.1.104 www.imooc.com
127.0.0.1 www.imooc.com
測試
[root@192 sbin]# ping www.imooc.com
PING www.imooc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.032 ms
編輯/usr/local/nginx/conf/nginx.conf
檔案,追加
###########################vhost##############################################
include vhost/*.conf;
在/usr/local/nginx/conf
目錄下,新建vhost
資料夾
在/usr/local/nginx/conf/vhost
目錄下,新建域名轉發www.mytest.com.conf
配置檔案
[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
# send request back to apach
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
訪問www.mytest.com
Nginx配置靜態資源轉發
編輯/usr/local/nginx/conf/nginx.conf
檔案,追加
###########################vhost##############################################
include vhost/*.conf;
在/usr/local/nginx/conf
目錄下,新建vhost
資料夾
在/usr/local/nginx/conf/vhost
目錄下,新建域名轉發www.mytest.com.conf
配置檔案
[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
# send request back to apach
location / {
root /ftpfile/;
}
}
mysql安裝
安裝
[root@192 ~]# yum -y install mysql-server
配置字符集,編輯/etc/my.cnf
檔案,追加
#utf8
default-character-set=utf8
設定mysql
服務隨系統自動啟動
[root@192 ~]# chkconfig mysqld on
[root@192 ~]# chkconfig --list mysqld
mysqld 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
啟動mysql
服務
[root@192 ~]# service mysqld start
正在啟動 mysqld: [確定]
登入,使用非密碼登入
[root@192 mysql]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, 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
的使用者
mysql> select user,host,password from mysql.user;
+------+---------------+----------+
| user | host | password |
+------+---------------+----------+
| root | localhost | |
| root | 192.168.1.104 | |
| root | 127.0.0.1 | |
| | localhost | |
| | 192.168.1.104 | |
+------+---------------+----------+
5 rows in set (0.00 sec)
刪除匿名使用者
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)
重新整理,立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
修改root
密碼
mysql> set password for root@localhost=password("000000");
Query OK, 0 rows affected (0.00 sec)
插入mysql新使用者
mysql> insert into mysql.user(Host,User,Password) values("localhost","admin",password("000000"));
Query OK, 1 row affected, 3 warnings (0.01 sec)
檢視使用者許可權
mysql> select * from mysql.user \G
*************************** 1. row ***************************
Host: localhost
User: root
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 2. row ***************************
Host: 192.168.1.104
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 3. row ***************************
Host: 127.0.0.1
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 4. row ***************************
Host: localhost
User: admin
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
4 rows in set (0.00 sec)
查庫,新建database
資料庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.01 sec)
mysql> create database mytest default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mytest |
| test |
+--------------------+
4 rows in set (0.00 sec)
本地使用者賦予所有許可權、給賬號開通外網所有許可權
mysql> grant all privileges on mytest.* to admin@'%' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,delete,create on mytest.* to admin@'192.168.1.104' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)
匯入sql
檔案
mysql> source /opt/module/mmall.sql
git安裝
下載
解壓
[root@192 ~]# tar -zxvf git-2.18.0.tar.gz -C /opt/module/
安裝依賴
[root@192 ~]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker cpio
編譯安裝
[root@192 git-2.18.0]# make prefix=/usr/local/ install
驗證
[root@192 ~]# git --version
git version 2.18.0
生成公私金鑰對
[root@192 ~]# ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
85:1e:ef:5a:33:ab:e7:79:a4:46:f6:8e:8f:7f:af:cd [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| o . |
| . + |
| S . |
| .o . |
| o=+ |
| o+Bo .o |
| o=*=+..oE|
+-----------------+
複製公鑰貼上到碼雲或者GitHub上SSH公鑰上
[root@192 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1sZvTnjQyVn7r2C7G9Q/WyVTTmJYqWhQdVfh3tBCUX8kJHaAcThwR4sl8ROz6xXl/22wbzlsKtfsiyr5zrV0Ifnq7KuCeNVNUYjOQCTn+ODaRzdj7DYC4Mz9BvxZAr0MDfSbgpLp6ZLAvZlkP3DioOPda7VnfJSAHGEYztOVPITj31pVnP1nXkPZRQlsTwImXEGJpuU+zOaurMShpaukrY/ONxWHR6xlG5M1FgOLdBvEnlbhOFoME1HHziI4/08Xw/NrHIUhvjZZgkAzWUo5NvYZLEwrUjOPtlVxHbYwBEtgBWRgWLFMfTlxQnEJVKzbwUDPLvZWac9WSpGLx5xiww== [email protected]
配置使用者名稱、郵箱,提交時會引用
[root@192 mytest]# git config --global user.name "shenlibng"
[root@192 mytest]# git config --global user.email "[email protected]"
[root@192 mytest]# git config --global core.autocrlf false
[root@192 mytest]# git config --global core.quotepath off
[root@192 mytest]# git config --global gui.encoding utf-8
開啟防火牆配置
檢視防火牆初始化配置
[root@192 ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
開放Tomcat埠
重啟生效防火牆
[root@192 ~]# service iptables restart
iptables:將鏈設定為政策 ACCEPT:filter [確定]
iptables:清除防火牆規則: [確定]
iptables:正在解除安裝模組: [確定]
iptables:應用防火牆規則: [確定]
檢視防火牆狀態
[root@192 ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination