Рубрики
Uncategorized

Это не просто внутренняя среда разработки LNMP.

Автор оригинала: David Wong.

Предисловие

Цель этого проекта состоит в том, чтобы установить ряд прикладных служб, обычно используемых для внутренней разработки, в недавно установленной системе 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=disabled

pstree

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 являются следующие:

  1. Установка EPEL с исходным кодом Yum (в настоящее время версия 6.16);
  2. Установка двоичного файла;
  3. Компиляция и установка исходного кода;

Теперь я представлю два последних метода, которые также более распространены при выборе версий.

Установка двоичных файлов (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