Предисловие
Цель этого проекта состоит в том, чтобы установить ряд прикладных служб, обычно используемых для внутренней разработки, в недавно установленной системе CentOS 7.5 на виртуальной машине (без установки CentOS) и развернуть веб – сайт с php MyAdmin в качестве примера.
- Nginx(1.16)
- MySQL (8.0, загрузка)
- PHP(7.3)
- Редис(1.5)
- memcached(1.4)
- Композитор(1.8)
- phpMyAdmin(4.8)
- nodejs(10.15)
- пряжа(1.15)
Важный совет: Если вы считаете, что слишком сложно устанавливать и настраивать один за другим, рекомендуется использовать инструмент визуального управления Pagoda для работы, который в основном реализует операцию в один клик, чтобы значительно повысить эффективность, одним словом, круто! (Конечно, это не идеально, например, когда инструмент не поддерживает установку MySQL 8.0 в ubuntu)
Назначение
IP-адрес виртуальной машины является 192.168.8.15 , Администратор сорго , Имя пользователя для выполнения служебной программы www , Каталог удаления веб-сайта /данные/wwwroot , Установка и настройка, за исключением специальных инструкций root Работа пользователя, После выполнения команды редактировать файл в следующей строке начинается отступ в четыре пробела справа для отредактированного содержимого.
ЦентОС
Виртуальная машина VMware может быть установлена менее чем за 20 минут (версия базового веб-сервера 1810, выбранная китайская среда, источник Yum по умолчанию 163.com)
Настройки пользователя
useradd www -s /usr/sbin/nologin
useradd -G www sorgo
passwd sorgo
# Give sorgo user root permission, and switch root without entering a password, `-l` view existing permissions
visudo
# Editorial Contents:
# Add an entry to indicate that sorgo can use `sudo` to execute root privileges
sorgo ALL=(ALL) NOPASSWD: ALLГлобальные параметры псевдонима команды
vim /etc/bashrc
# Add:
alias s-start='systemctl start'
alias s-stop='systemctl stop'
alias s-restart='systemctl restart'
alias s-enable='systemctl enable'
alias s-disable='systemctl disablep'
alias s-status='systemctl status'
alias vi='vim'
alias ll='ls -laph'
alias ..='cd ..'
alias nrd='npm run dev'
alias nrh='npm run hot'
alias nrp='npm run production'
alias nrw='npm run watch'
alias nrww='npm run watch-poll'
alias yrd='yarn run dev'
alias yrh='yarn run hot'
alias yrp='yarn run production'
alias yrw='yarn run watch'
alias yrwp='yarn run watch-poll'
alias pa='php artisan'
alias phpspec='vendor/bin/phpspec'
alias phpunit='vendor/bin/phpunit'
# Make the amendment take effect immediately
source /etc/bashrcКаталог сайта и разрешения
# Project catalogue mkdir -p /data/wwwroot/ # Log directory mkdir -p /data/wwwlogs/nginx/ # Installation Directory of Web Site Basic Applications mkdir /data/server/ # Empowerment chown -R sorgo:www /data/ chmod -Rf g+s /data/
Конфигурация Сетевой Карты
# Look at the name of the network card. That's in the left column.
ifconfig
# Edit network card configuration to fix NAT mode IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# Editorial Contents:
# Configuration file key content, for reference only
NAME=ens33
DEVICE=ens33
DEFROUTE=yes
ONBOOT=yes
# Set it to static with `IPADDR'`
BOOTPROTO=static
IPADDR=192.168.8.15
NETMASK=255.255.255.0
# Restart takes effect
systemctl restart networkКонфигурация источника Yum
Лиюань
cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
163 источника Официальное использование справки
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.backup wget -O CentOS-Base.repo https://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all yum makecache # Update all Yum installations of the system, select yum update -y
Некоторые команды вкуснятины
Yum list all # lists all security subcontracts Yum list installed # lists installed Yum list available # lists those that are not installed Yum remove software # uninstall software Yum install software # install software Yum search keyword # search keyword-related software Yum whatprovides file # Search for packages containing this file Yum reinstall software # install new software Yum localinstall third-party software # install the software and resolve dependencies Yum info software # query software information Yum groups list # list software groups Yum groups install # installation group Yum groups remove # uninstall group Yum groups info # view group information Yum repolist # View the installed source
Закройте брандмауэр
В CentOS 7.5 брандмауэр загружается по умолчанию. В среде разработки для удобства брандмауэр отключается напрямую.
# View status
systemctl status firewalld
# Cancel boot-up
systemctl disable firewalld
# Close the firewall
systemctl stop firewalld
# Close selinux, otherwise it will affect the use of samba
vi /etc/selinux/config
# Editorial Contents:
SELINUX=disabledpstree
yum install psmisc -y # View the currently running process pstree
Инструменты для компиляции установщиков
# CentOS 1810 is installed by default yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
Полезные команды
# View PID by process name pidof nginx # terminate by process name pkill redis-server killall redis-server
тсс
Средство подключения SSH рекомендует MobaXterm, который имеет функцию передачи файлов FTP
Nginx(1.16+)
Эта установка является стабильной версией (в настоящее время 1.16.* ) Официальный Руководящий Документ По Установке
Добавить исходные файлы nginx
# Create source files
vi /etc/yum.repos.d/nginx.repo
# Add the following
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.keyЕсли вы хотите установить версию основной линии в качестве установленной версии по умолчанию, она является исполняемой yum-config-manager --включить nginx-основную линию
устанавливать
yum install yum-utils # The following command installs the stable version of the previous source file settings yum install -y nginx # View the installed version nginx -v
Конфигурация каталога сайта
Глобальная конфигурация
# Configuration Execution User Name
vi /etc/nginx/nginx.conf
# Editorial Contents:
user www;Добавьте конфигурацию сайта nginx для нового проекта. Это шаблон конфигурации для веб-сайта PHP. В будущем конфигурация других сайтов будет изменена и сопоставлена на основе этого шаблона.
#vi /etc/nginx/conf.d/your_project_name.conf
# Editorial Contents:
# Add
server
{
listen 1700;
#listen 443 ssl http2;
#listen [::]:443 ssl http2;
#listen [::]:80;
#server_name domain.com;
# Character set settings can only be in server blocks
charset utf-8;
index index.php index.html index.htm default.php default.htm default.html;
root /data/wwwroot/your_project_name/public;
#access_log /data/wwwlogs/nginx/your_project_name.log;
#error_log /data/wwwlogs/nginx/your_project_name.error.log;
# Laravel, ThinkPHP Routing Configuration
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Running PHP files
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Documents or directories that are not accessible
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
}Функция
# Test configuration information for grammatical issues before it can be started nginx -t # Start-up nginx
Все инструкции
Информация о конфигурации теста Nginx-t Nginx # режим запуска по умолчанию Nginx-v# отображает информацию о версии, и-V (большой V) отображает параметры времени компиляции Nginx-s stop # Быстрая остановка службы Nginx-start выход из нормальной остановки службы Перезагрузка Nginx-s # перезапуск
PHP(7.3)
PHP7.3
устанавливать
# Installation source yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm # Search for eligible packages yum search php73 # Installing php7.3 and its extensions # PHP extensions including redis, memcached, msgpack, and YAF frameworks yum install -y php73-php php73-php-fpm php73-php-pear php73-php-bcmath php73-php-mbstring php73-php-cli php73-php-pdo php73-php-pecl-mysql php73-php-mysqlnd php73-php-pecl-redis4 php73-php-pecl-memcached php73-php-pecl-msgpack php73-php-pecl-yaf php73-php-pecl-jsond-devel php73-php-gd php73-php-common php73-php-intl php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt # Installation path of the program: `opt/remi/php73/`; # Configuration file path: `etc/opt/remi/php73/php.ini';
Для настройки
cp /etc/opt/remi/php73/php.ini /etc/opt/remi/php73/php.ini.bak
# Modify PHP time zone and extend file directory path
vi /etc/opt/remi/php73/php.ini
# Editorial Contents:
date.timezone = PRC
extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/"
# Modify php-fpm execution users
vi /etc/opt/remi/php73/php-fpm.d/www.conf
# Editorial Contents:
user=www
group=www
# Empowerment
chown -R root:www /var/opt/remi/
# Flexible Chain to General Catalog
ln -s /etc/opt/remi/php73/php.ini /etc/php.ini
ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php
ln -s /opt/remi/php73/root/usr/sbin/php-fpm /usr/bin/php-fpm
ln -s /opt/remi/php73/root/usr/bin/php-cgi /usr/bin/php-cgi
ln -s /opt/remi/php73/root/usr/bin/pear /usr/bin/php-pear
ln -s /opt/remi/php73/root/usr/bin/phar.phar /usr/bin/php-phar
# View the installed version of PHP
php -v
# View the installed PHP extension module
php -mЗапуск php-fpm
# Start-up php-fpm # Termination kill -QUIT `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid` # Restart kill -USR2 `cat /var/opt/remi/php73/run/php-fpm/php-fpm.pid`
MySQL(8.0)
Официальное Руководство По Установке
Установка Yum
устанавливать
# Download source
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
# Installation source
yum localinstall -y mysql80-community-release-el7-1.noarch.rpm
# List available MySQL packages
#yum repolist enabled | grep mysql
# If you plan to install 5.7, do the following two sentences and switch the default version
#yum-config-manager --disable mysql80-community
#yum-config-manager --enable mysql57-community
# Installation
yum install -y mysql-community-server
# Updated version
#yum update mysql-server
# View Version
mysql -VДля настройки
vi /etc/my.cnf
# Editorial Content
[mysqld]
# Setting up port 3301
port=3301
# Permissible maximum number of connections
max_connections=200
# Number of connection failures allowed. This is to prevent someone from trying to attack the database system from the host.
max_connect_errors=10
# The character set used by the server is UTF8 by default
#character-set-server=utf8
# Default storage engine to be used when creating new tables
default-storage-engine=INNODB
# By default, "mysql_native_password" plug-in authentication is used, which is saved in MySQL 5.7 password processing mode, compatible with older connectors, and caching_sha2_password mode is the default of 8.0.
default_authentication_plugin=mysql_native_password
# Setting default time zone
default-time_zone = '+8:00'Функция
# Start-up systemctl start mysqld # Start-up systemctl enable mysqld # Status systemctl status mysqld # View the root initial password grep 'temporary password' /var/log/mysqld.log # Login mysql -uroot -p # The initial password must be modified, and the new password must contain at least eight characters of letters, numbers and special characters. # The password is processed in mysql_native_password mode, saved in MySQL 5.7 password processing mode and compatible with older connection programs. The default mode of 8.0 is caching_sha2_password mode. mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Sorgo123.'; # Enter MySQL database mysql> use mysql; # Setting up root allows users to log on to any host mysql> update user set host='%' where user='root' and host='localhost'; mysql> FLUSH PRIVILEGES; # Query user table information mysql> select user,host,plugin from user;
Redis(5.0)
Рекомендуемое Руководство Пользователя
устанавливать
cd /data/server/ wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zvxf redis-5.0.4.tar.gz && cd redis-5.0.4 make # Flexible chain into a unified directory, convenient for multi-version management ln -s /data/server/redis-5.0.4 /data/server/redis ln -s /data/server/redis/redis.conf /etc/redis.conf # Flexible chain to command directory ln -s /data/server/redis/src/redis-cli /usr/local/bin/redis-cli ln -s /data/server/redis/src/redis-server /usr/local/bin/redis-server ln -s /data/server/redis/src/redis-sentinel /usr/local/bin/redis-sentinel # View Version redis-server -v
Для настройки
# vi /etc/redis.conf
# Accessible to any host
bind 0.0.0.0
# Password login
requirepass Sorgo123.
# The way the background process runs
daemonize yesФункция
# Open by configuration file redis-server /etc/redis.conf # Enter Interaction Tools redis-cli -h 127.0.0.1 -p 6379 -a Sorgo123. # View redis process information info server # Shut down services shutdown
memcached(1.4)
Установка Yum 1.4
yum install -y memcached # View Help Information and Versions memcached -h # Open, multiple processes can be opened by different ports memcached -d -p 11211 -m 150 -u www # Close, closing the process name containing `memcached'. pkill memcached
Параметры запуска: – D – запуск процесса демона; – M – объем памяти, выделенный для Memcache в МБ. – u-пользователь, запускающий Memcache; – L-IP-адрес прослушивающего сервера, который может иметь несколько адресов. – P – порт для настройки Memcache для прослушивания, предпочтительно более 1024 портов; – C-максимальное количество запущенных одновременных подключений, по умолчанию 1024; – P-файл PID, который настраивается для сохранения Memcache.
Компиляция и установка, 1.5
cd /data/server/ # Install dependencies first, or they will not compile yum install -y libevent-devel # Download source code wget http://www.memcached.org/files/memcached-1.5.13.tar.gz # Unzip and enter directory tar -zvxf memcached-1.5.13.tar.gz && cd memcached-1.5.13 # Execute the configuration, where only the installation directory is set ./configure --prefix=/data/server/memcached-1.5.13/ # Compile and install make && make install ln -s /data/server/memcached-1.5.13 /data/server/memcached ln -s /data/server/memcached/bin/memcached /usr/local/bin/memcached # View the installed version memcached -h
самба(4.8)
# Installation
yum install -y samba samba-client samba-common
# Add Samba user, user's existing username, special password for Samba login: sorgo
smbpasswd -a sorgo
# View the added users
pdbedit -L
# Modify configuration
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf
# Add directory paths accessible through Samba
[wwwroot]
comment = website root
path = /data/wwwroot
valid users = sorgo
writable = yes
create mask = 0750
directory mask = 0750
# Check configuration file syntax
testparm
# Start-up
systemctl enable smb && systemctl enable nmb
systemctl restart smb && systemctl restart nmb
# View status
smbstatus
# Linux end use
## Test Connection
smbclient -L //192.168.8.15 -U smb_user_naem
## mount to application
mount -t cifs //192.168.8.15/wwwroot/ /smb/ -o username=smb_user_naem,password=1234
df -h /smb
## Unloading
umount /smb
# Windows End Use
\${ip}
# Notes
* Never write Chinese in the configuration file, even Chinese annotations, otherwise Windows can not enter the directory!!!
* If the server doesn't Ping in Windows (not because the server forbids ping, but for unknown reasons), it's not connected.
* phpstrom becomes exceptionally cramped when it opens the samba project fileКомпозитор(1.8)
устанавливать
# Generate composer.phar
php73 -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php73 composer-setup.php
php73 -r "unlink('composer-setup.php');"
# Move to command directory
mv composer.phar /usr/local/bin/composer
# Version and other information
composerУстанавливать
# Set the source to domestic mirror. Choose one of the following composer config -g repo.packagist composer https://packagist.phpcomposer.com composer config -g repo.packagist composer https://packagist.laravel-china.org # Remove the above settings composer config -g --unset repos.packagist # View global configuration composer config -gl
phpMyAdmin
phpMyAdmin на самом деле является веб-сайтом, написанным на php. Загрузите пакет файлов PHP на сервер на официальном веб-сайте и настройте nginx так, чтобы он указывал на корневой каталог.
cd /data/server/
# Access 1: Download using composer (sometimes not very fast)
#composer create-project phpmyadmin/phpmyadmin
# Access 2: WGet downloaded directly from the official website (this is the way of this demonstration)
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
# Access Mode 3: Download it elsewhere, then upload it to the server via ftp, which one is convenient in principle and which one is convenient to use?
# Unzip to the current directory
unzip phpMyAdmin-4.8.5-all-languages.zip
# Soft Chain Convenient Version Control
ln -s phpMyAdmin-4.8.5-all-languages phpmyadmin
# Editing configuration files
cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php
vi phpmyadmin/config.inc.php
# The following is the editorial content:
# Setting keys of any length above 32 bits
$cfg['blowfish_secret'] = 'dNE9GVnon3LWSVGvhGPuZdBhb7c7RtQ3';
# Empowerment
chmod -R 770 phpmyadmin/
# nginx site configuration, using sed command to replace key values in a template configuration
# Mainly changed the listening port `8888'and the log file name `phpmyadmin'.`
cat /etc/nginx/conf.d/your_project_name.conf | sed 's/1700/8888/g' | sed 's/your_project_name\./phpmyadmin\./g' | sed 's/wwwroot\/your_project_name\/public/server\/phpmyadmin\//g' > /etc/nginx/conf.d/phpmyadmin.conf
# Check the configuration file for error before starting
nginx -t
# Restart nginx
nginx -s reload
# Visits
http://192.168.8.15:8888/node.js(10,15 литра)
Китайский API Документирует методы установки node.js являются следующие:
- Установка EPEL с исходным кодом Yum (в настоящее время версия 6.16);
- Установка двоичного файла;
- Компиляция и установка исходного кода;
Теперь я представлю два последних метода, которые также более распространены при выборе версий.
Установка двоичных файлов (10.15.3) (Рекомендуется)
Это доступно для скачивания.
cd /data/server/ # Download the binary package, about 12M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz # Unzip. Note that this unzip command is different from the file that unzips the end of `gz'. tar -xJvf node-v10.15.3-linux-x64.tar.xz # Soft Chain ln -s node-v10.15.3-linux-x64 node ln -s /data/server/node/bin/node /usr/local/bin/node ln -s /data/server/node/bin/npm /usr/local/bin/npm ln -s /data/server/node/bin/npx /usr/local/bin/npx # View Version node -v npm -v
Компиляция и установка (10.15.3)
Процесс компиляции происходит медленно, и на самостоятельное тестирование уходит около часа.
cd /data/server/ # Download source code, about 35M wget https://nodejs.org/dist/v10.15.3/node-v10.15.3.tar.gz tar -zvxf node-v10.15.3.tar.gz && cd node-v10.15.3 # Execute configuration scripts ./configure # Compile and install make && make install # View Version node -v npm -v
пряжа(1.15)
Официальный Установочный Документ
# Yum source with yarn added curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo # Installation, ensure that nodejs is installed yum install -y yarn # View Version yarn -v