CentOS 7 开发服务器搭建完全版 (v.0.0.5)
目录
-
初期設定
- 初期設定
-
- Apache 2.4
-
- MariaDB 10.1
PHP 7.0
Composer
phpMyAdmin
Node.js v6
起初的设定安装
安装基本软件包,其中包括 Git。
$ yum update
$ yum groupinstall -y Base
添加 EPEL 软件仓库
$ yum install -y epel-release
设置 Vim 别名(选项)
編輯 Bash 設定檔案
$ vim ~/.bashrc
+alias vi='vim '
重新加载
$ source ~/.bashrc
▲ 返回目录
亚马逊 EC2 风格
功能
-
ec2-user に相当するユーザー(キーペア認証、パスワードなしsudo)
-
- ec2-user に相当するユーザー(キーペア認証、パスワードなしsudo)
-
- Amazon EC2 と同一の SSH 設定
- その他 同一設定の適用
用户管理员用户(ec2用户)
用户名admin在发行OpenSSL服务器证书时也被使用。
$ useradd -G wheel admin
设置密钥认证遥控
$ useradd -G wheel admin
以管理员用户登录
$ su - admin
配置适当的文件夹和文件的访问权限。
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
创建私钥和公钥。
$ ssh-keygen -t rsa -C "dev.example.com"
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
将公钥添加到 authorized_keys 文件中并删除
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
本土的
可以通过使用scp命令将秘密密钥从远程设置到本地。
$ scp root@dev.example.com:/home/admin/.ssh/id_rsa ~/.ssh/dev.example.com.pem
远程
删除私钥并退出登录
$ rm ~/.ssh/id_rsa
$ exit # admin
$ exit # root
当地的
$ vim ~/.ssh/config
+Host dev.example.com
+ HostName dev.example.com
+ User admin
+ IdentityFile ~/.ssh/dev.example.com.pem
确认是否可以用管理员用户登录
如果登录失败,请再次用根用户登录并重新确认设置。
$ ssh dev.example.com
Sudo 用户设置禁用wheel组的sudo命令
$ sudo visudo
-Defaults requiretty
+#Defaults requiretty
-%wheel ALL=(ALL) ALL
+#%wheel ALL=(ALL) ALL
$ sudo visudo
-Defaults requiretty
+#Defaults requiretty
-%wheel ALL=(ALL) ALL
+#%wheel ALL=(ALL) ALL
在个别设置中启用无需管理员用户密码的sudo命令
$ visudo -f /etc/sudoers.d/admin
admin ALL = NOPASSWD: ALL
admin ALL=(ALL) NOPASSWD:ALL
以 admin 用户身份登录并确认 sudo 命令的操作。
$ su - admin
$ sudo tail /var/log/secure
SSH 配置
编辑设置文件
与亚马逊 EC2 (亚马逊 Linux)相同的设置
$ vim /etc/ssh/sshd_config
-#PermitRootLogin yes
+PermitRootLogin forced-commands-only
-PasswordAuthentication yes
+PasswordAuthentication no
-GSSAPIAuthentication yes
-GSSAPICleanupCredentials no
+#GSSAPIAuthentication yes
+#GSSAPICleanupCredentials no
-#PrintLastLog yes
+PrintLastLog yes
$ vim /etc/ssh/sshd_config
-#PermitRootLogin yes
+PermitRootLogin forced-commands-only
-PasswordAuthentication yes
+PasswordAuthentication no
-GSSAPIAuthentication yes
-GSSAPICleanupCredentials no
+#GSSAPIAuthentication yes
+#GSSAPICleanupCredentials no
-#PrintLastLog yes
+PrintLastLog yes
请注意,如果管理员用户的密钥认证失败,将无法登录,请重新启动SSH服务。
$ sudo systemctl restart sshd
禁用 SELinux
确认当前状态
$ getenforce
Enforcing
编辑设定文件
$ sudo vim /etc/sysconfig/selinux
-SELINUX=enforcing
+SELINUX=disabled
为了使设置生效,需要重新启动。
sudo reboot
确认是否失能
$ getenforce
Disabled
更改主机名(选项)
确认当前的主机名
$ hostname
编辑配置文件
$ sudo vim /etc/hostname
dev.example.com
为了使设置生效,请重新启动
$ sudo reboot
确认新的主机名
$ hostname
dev.example.com
▲ 返回目录
打开SSL(选项)
使用Apache 2.x + mod_ssl + OpenSSL来生成CSR(新建或更新)。
[CSR生成] 使用Apache 2.x + mod_ssl + OpenSSL(新建或更新)。
创建 SSL 服务器证书生成私钥并解除密码
$ sudo openssl genrsa -des3 -out dev.example.com.key 2048
$ sudo openssl rsa -in dev.example.com.key -out dev.example.com.key
使用Apache 2.x + mod_ssl + OpenSSL来生成CSR(新建或更新)。
[CSR生成] 使用Apache 2.x + mod_ssl + OpenSSL(新建或更新)。
$ sudo openssl genrsa -des3 -out dev.example.com.key 2048
$ sudo openssl rsa -in dev.example.com.key -out dev.example.com.key
使用私钥生成CSR。
$ sudo openssl req -new -key dev.example.com.key -out dev.example.com.csr
※指定がない場合は – (ハイフン)を入力してください。SalesCommon Name※ウェブサーバのFQDNです。dev.example.comEmail Address入力不要です。
A challenge password入力不要です。
An optional company name入力不要です。推荐认证机构
SSLストア RapidSSL 1年 1,620円 (2016年8月)
namecheap RapidSSL $10.95/yr (英語、2016年8月)
StartSSL 無料 (英語、高難度)
使用CSR从SSL认证机构颁发的证书中创建服务器证书文件。
按照服务器证书、中间证书和根证书的顺序进行描述。
$ sudo vim dev.example.com.crt
在配置服务器证书和私钥之后,删除来自服务器的CSR(不推荐重复使用)。
$ sudo mv dev.example.com.crt /etc/pki/tls/certs/dev.example.com.crt
$ sudo mv dev.example.com.key /etc/pki/tls/private/dev.example.com.key
$ sudo rm dev.example.com.csr
▲ 返回目录
Apache 2.4的意思是:Apache的第2.4版本。
安装
安装最新版本
$ sudo yum install -y httpd
启用自动启动
$ sudo systemctl enable httpd
启动 Apache
$ sudo systemctl start httpd
防火墙设置
4.5. 使用防火墙
开放端口HTTP(80)。
$ sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --reload
基本设置
备份设置文件
$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
虛擬主機設定
-
- Control Default Apache Virtual Host
- Apache Virtual Host Containers in Separate Files
$ sudo vim /etc/httpd/cond.d/vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/dev.example.com/public_html
ServerName dev.example.com
<Directory /var/www/dev.example.com/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
重新启动Apache。
$ sudo systemctl restart httpd
打开 OpenSSL 的设置增加 Apache OpenSSL 模块。
$ sudo yum install -y mod_ssl
$ sudo yum install -y mod_ssl
設定文件的備份
$ sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org
编辑设定文件
$ sudo vim /etc/httpd/conf.d/ssl.conf
-#DocumentRoot "/var/www/html"
-#ServerName www.example.com:443
+DocumentRoot "/var/www/dev.example.com/public_html"
+ServerName dev.example.com:443
-SSLCertificateFile /etc/pki/tls/certs/localhost.crt
+SSLCertificateFile /etc/pki/tls/certs/dev.example.com.crt
-SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
+SSLCertificateKeyFile /etc/pki/tls/private/dev.example.com.key
SSL优先(选项)
将访问 HTTP(80)的用户重定向到 HTTPS(443)。
$ sudo vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
ServerName dev.example.com
RewriteEngine On
RewriteRule ^(.*) https://dev.example.com$1 [L,R=301]
</VirtualHost>
重新加载 Apache 的配置
$ sudo systemctl reload httpd
防火墙的设置
4.5. 使用防火墙
解放HTTPS(443)端口
$ sudo firewall-cmd --zone=public --add-service=https --permanent
$ sudo firewall-cmd --reload
▲ 返回目录
MariaDB 10.1: MariaDB 十点一
将CentOS 7中的MySQL更改为与MySQL兼容的MariaDB。
安装
-
- Installing MariaDB with yum
- yum による MariaDB のインストール
添加最新版本的 MariaDB 仓库
$ sudo vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
安装最新版本
$ sudo yum install -y MariaDB-server MariaDB-client
启用自动启动
$ sudo systemctl enable mariadb
启动MariaDB
$ sudo systemctl start mariadb
基本设定
进行初始设置并安装
$ mysql_secure_installation
将字符编码更改为UTF-8
$ sudo vim /etc/my.cnf.d/server.cnf
[mysqld]
+character-set-server=utf8
重启 MariaDB
$ sudo systemctl restart mariadb
防火墙设置(选项)
4.5. 使用防火墙
- MariaDB(3306) のポートを解放
$ sudo firewall-cmd --zone=public --add-service=mysql --permanent
$ sudo firewall-cmd --reload
▲ 返回目录
PHP 7.0的版本安装
添加Remi存储库
雷米的RPM仓库
$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo rpm -Uvh remi-release-7.rpm
$ rm remi-release-7.rpm
安装最新版的 PHP
$ sudo yum --enablerepo=remi-php70 install php php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-posix php-xml
基本设定- Basic configuration
設定文件的備份
$ sudo cp /etc/php.ini /etc/php.ini.default
编辑 PHP 配置文件
$ sudo vim /etc/php.ini
-;date.timezone =
+date.timezone = "Asia/Tokyo"
重新启动 Apache
$ sudo systemctl restart httpd
作曲家 jiā)PHP 包管理器
下载 Composer
下载
$ sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ sudo php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php
$ sudo php -r "unlink('composer-setup.php');"
移动到当前文件夹
$ sudo mv composer.phar /usr/local/bin/composer
phpMyAdmin 4.6是一个用于管理MySQL数据库的开源工具。
在网络上运行的 MySQL (MariaDB) 数据库连接客户端工具。
安装最新版本(remit-test仓库)
$ sudo yum --enablerepo=remi-test,remi-php70 install phpMyAdmin
添加IP地址许可
$ sudo vim /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
+ Require ip IPアドレス
</IfModule>
</Directory>
重新启动 Apache
$ sudo systemctl restart httpd
动作确认
http://dev.example.com/phpMyAdmin/
http://dev.example.com/phpmyadmin/
▲ 返回目录
Node.js v6 → Node.js 第6版通过软件包管理器安装Node.js
添加最新版本的存储库
$ curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
安装最新版本
$ sudo yum install -y nodejs
安装基本软件包(选项)。
-
- Bower
- Less.js
$ sudo npm install -g bower less
▲ 返回目录
请完成以下任务。
-
見出し、内容の整理
- 見出し、内容の整理
-
- Node.js Apache リバースプロキシ
-
- FTP サーバ
-
- メールサーバ Postfix, Dovecot
-
- Ruby, Python
-
- nginx (未定)
-
- ファイアウォール trusted の追加 ssh mysql の削除
- Redmine