ubuntu 14.04LTS nginx+mariaDB+php7+YAF 설치 방법

본 고 는 ubuntu 14.04LTS 에 nginx+mariaDB+php7+YAF 를 설치 하 는 방법 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
ubuntu apt-get 방식 으로 nginx 설치
참고:
http://nginx.org/en/linux_packages.html
맨 먼저
in order to authenticate the nginx repository signature and to eliminate warnings about missing PGP key during installation of the nginx package, it is necessary to add the key used to sign the nginx packages and repository to the apt program keyring.
키 다운로드

wget http://nginx.org/keys/nginx_signing.key

그리고 추가

sudo apt-key add nginx_signing.key

nginx 의 reposcory 가입

cd /etc/apt/sources.list.d/
sudo vim nginx.list

안정 적 인 버 전 을 설치 하면 다음 내용 을 입력 하 십시오.

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

최신 버 전이 라면 다음 내용 을 입력 하 십시오.

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

그리고 설치

apt-get update
apt-get install nginx

설치 완료

nginx -v
nginx version: nginx/1.8.0

MariaDB 데이터베이스 설치
MariaDB 는 오픈 소스 데이터베이스 이 며 100%MySQL 과 호 환 되 며 MySQL 데이터 베 이 스 를 대체 하 는 것 이 목표 입 니 다.
MariaDB 배경:
2008 년 에 MySQL 은 나중에 Oracle 이 2010 년 에 인수 한 Sun Microsystems 에 의 해 인수 되 었 다.당초 썬 의 인수 로 프로젝트 수요 에 맞 춰 MySQL 커 뮤 니 티 의 환 호 를 받 았 으 나 이런 정 서 는 오래 지속 되 지 않 았 고,이 어 오 라 클 의 인수 로 불 행 히 도 기대 보다 훨씬 낮 았 다.많은 MySql 개발 자 들 이 Sun 과 Oracle 회 사 를 떠 나 새로운 프로젝트 를 시작 했다.그들 사이 에는 MySQL 의 창시자 와 프로젝트 장기 기술 의 선두 주자 중 한 명인 Michael'Monty'Widenius 가 있다.Monty 와 그의 팀 은 MySQL 의 fork 버 전 을 만 들 었 고 MariaDB 라 고 명명 했다.
기본적으로 MariaDB 의 가방 은 우 분투 창고 에 없습니다.MariaDB 를 설치 하려 면 먼저 MariaDB 창 고 를 설치 해 야 합 니 다.
MariaDB 창고 설치

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.3GolFM9PZ5 --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:        imported: 1
sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

MariaDB 설치:

sudo apt-get update
sudo apt-get install mariadb-server

설치 중 MariaDB 의 루트 비밀 번 호 를 설정 해 야 합 니 다.
명령 행 에서 MariaDB 로 연결 하기:

keyun@ubuntu-server:~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.0.23-MariaDB-1~trusty-log mariadb.org binary distribution
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

MariaDB 서비스

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

이상 은 Ubuntu 에 MariaDB 만 설치 되 어 있 으 며,아래 는 MariaDB 를 설정 하여 원 격 접근 을 허용 합 니 다.
1.Ubuntu 에 방화벽 이나 iptables 규칙 이 있 으 면 직접 열 어 주세요.
2,3306 포트 가 열 리 지 않 았 습 니까?
nestat 명령 으로 3306 포트 상 태 를 보기:

~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

그 결과 3306 포트 가 IP 127.0.0.1 에서 만 감청 되 는 것 으로 나타 나 다른 IP 접근 을 거부 했다.
해결 방법:/etc/mysql/my.cnf 파일 을 수정 합 니 다.파일 을 열 고 다음 내용 을 찾 습 니 다:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

위의 이 줄 의 주석 을 없 애 거나 127.0.0.1 을 적당 한 IP 로 바 꾸 면 주석 을 없 애 는 것 을 권장 합 니 다.
다시 시작 한 후 netstat 검 측 을 다시 사용 합 니 다:

~# netstat -an | grep 3306
tcp    0   0 0.0.0.0:3306      0.0.0.0:*        LISTEN

1.사용자 권한 을 원 격 사용자 별로 분배 합 니 다.
my sql 서버 에 로그 인하 여 grant 명령 으로 권한 을 할당 합 니 다.
mysql> grant all on . to       root@'%' identified by '    ';
완료 후 my sql 명령 으로 연결 하여 성공 을 알 립 니 다.정확 한 원 격 로그 인 테스트 를 할 수 있 도록 합 니 다.
PHP 7 설치
설 치 를 최소 화 하 는 ubuntu 이기 때문에 make 를 먼저 설치 합 니 다.

sudo apt-get install make

원본 코드 다운로드

sudo wget https://downloads.php.net/~ab/php-7.0.2RC1.tar.gz
sudo tar -zvxf php-7.0.2RC1.tar.gz
cd php-7.0.2RC1

새 형의 지시 에 따라 gcc 4.8 설치
새로운 컴 파 일 러 를 사용 하여 GCC 4.8 이상 을 추천 합 니 다.GCC 4.8 이상 의 PHP 만 이 Global Register for opline and execute 를 열 수 있 기 때 문 입 니 다.data 지원,이것 은 5%정도 의 성능 향상(Wordpres 의 QPS 각도 평가)을 가 져 올 수 있 습 니 다.사실 GCC 4.8 이전 버 전도 지원 하지만 Bug 를 지원 하 는 것 을 발 견 했 기 때문에 4.8 이상 의 버 전이 어야 이 기능 을 시작 할 수 있 습 니 다.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade

버 전 보기

gcc --version
gcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

우선 설치 의존

sudo apt-get install libxml2 
sudo apt-get install libxml2-dev 
sudo apt-get install openssl 
sudo apt-get install libssl-dev 
sudo apt-get install curl 
sudo apt-get install libcurl4-openssl-dev 
sudo apt-get install libgd-dev 
sudo apt-get install libxslt-dev

이 컴퓨터 lib 디 렉 터 리 는/usr/lib/x86 에 있 기 때 문 입 니 다.64-linux-gnu

./configure Cprefix=/usr/local/php Cwith-curl Cwith-freetype-dir Cwith-gd Cwith-gettext Cwith-iconv-dir Cwith-kerberos Cwith-libdir=lib/x86_64-linux-gnu Cwith-libxml-dir Cwith-mysqli Cwith-openssl Cwith-pcre-regex Cwith-pdo-mysql Cwith-pdo-sqlite Cwith-pear Cwith-png-dir Cwith-xmlrpc Cwith-xsl Cwith-zlib Cenable-fpm Cenable-bcmath Cenable-libxml Cenable-inline-optimization Cenable-gd-native-ttf Cenable-mbregex Cenable-mbstring Cenable-opcache Cenable-pcntl Cenable-shmop Cenable-soap Cenable-sockets Cenable-sysvsem Cenable-xml Cenable-zip
sudo make
sudo make install
sudo cp php.ini-development /usr/local/php/lib/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
sudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

마지막 명령 은 php-fpm 가 시스템 에 따라 자동 으로 시 작 됩 니 다.
phop 자체 phop-fpm 관리 도 구 를 이용 하여 start,stop,restart 를 편리 하 게 할 수 있 습 니 다.
원본 패키지 에서 php/sbin 폴 더 에 관리 도 구 를 넣 어 사용 하기 편리 합 니 다.

sudo cp ./sapi/fpm/init.d.php-fpm /usr/local/php/sbin/
sudo cd /usr/local/php/sbin/
sudo chmod 755 init.d.php-fpm

nginx 와 php-fpm 를 설정 한 후 phpinfo()를 통 해 다음 과 같이 볼 수 있 습 니 다
 
이로써 php 7 설치 에 성 공 했 습 니 다.
apache ab 압력 측정 도구 설치

sudo apt-get install apache2-utils

테스트 해 보다

echo "hello world"

ab -n 1000 -c 20 http://10.81.36.158:9528/

QPS 7000 정도.
다음 opcache 오픈

sudo vi /usr/local/php/lib/php.ini

opcache 설정 찾기
다음 내용 추가

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

php-fpm 다시 시작

sudo kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid

혹은

sudo /usr/local/php/sbin/init.d.php-fpm restart

재 테스트,QPS 8000 이상으로 상승
HugePages 열기
참고:https://www.jb51.net/article/85491.htm
재 테스트,QPS 는 가끔 10000 을 표시 할 수 있 습 니 다.
YAF 설치

sudo wget http://pecl.php.net/get/yaf-3.0.2.tgz
sudo tar -zvxf yaf-3.0.2.tgz

압축 을 푼 후 Yaf 의 소스 디 렉 터 리 에 들 어가 순서대로 실행 합 니 다(그 중 PHPBIN 은 PHP 의 bin 디 렉 터 리 입 니 다):

sudo /usr/local/php/bin/phpize

오류 보고:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
해결 방법:

sudo apt-get install m4
sudo apt-get install autoconf
sudo apt-get install libpcre3 libpcre3-dev 

phpize 실행 후:

sudo ./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install
Installing shared extensions:   /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

설치 성공,php.ini 수정,yaf 확장 추가

extension=yaf.so

php-fpm 다시 시작,phpinfo()보기
 
yaf 설치 성공
PS:PDO 를 사용 하 는 중 SQLSTATE[HY 000][2002]No such file or directory error
mysql.sock 에서 찾 을 수 없습니다.
ppinfo()에서 pdo 보기mysql.default_socket 의 값 은/tmp/mysql.sock 입 니 다.
 
하지만 서버 에는 이 파일 이 없습니다.
sudo service my sql status 명령 을 통 해

* /usr/bin/mysqladmin Ver 9.1 Distrib 10.0.23-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Server version     10.0.23-MariaDB-1~trusty-log
Protocol version    10
Connection       Localhost via UNIX socket
UNIX socket       /var/run/mysqld/mysqld.sock
Uptime:         3 min 28 sec

sock 파일 의 위 치 를 찾 으 면/var/run/mysqld/mysqld.sock
그래서/tmp 아래 에 소프트 링크 를 만 듭 니 다.

sudo ln -s /var/run/mysqld/mysqld.sock mysql.sock

문제 해결
localhost 를 통 해 데이터베이스 에 접근 할 수 없 지만 IP 를 통 해 가능 합 니 다.
분석:전형 적 인 socket 이 제대로 설정 되 지 않 은 경우 입 니 다.
MySQL 데이터 베 이 스 를 연결 하 는 방법 은 두 가지 가 있 습 니 다.TCP/IP(일반적으로 이해 하 는 포트 의 것)와 유 닉 스 소켓(일반적으로 socket 또는 sock)입 니 다.대부분의 경우 localhost 로 이 컴퓨터 127.0.0.0.1 을 대표 할 수 있 지만 MySQL 연결 시 두 가 지 를 혼용 할 수 없습니다.또한 MySQL 의 권한 설정 에서 localhost 와 127.0.0.0.1 도 따로 설정 되 어 있 습 니 다.127.0.0.1 로 설정 되 었 을 때 시스템 은 TCP/IP 방식 으로 데이터 베 이 스 를 연결 합 니 다.localhost 로 설정 되 었 을 때 시스템 은 socket 방식 으로 데이터 베 이 스 를 연결 합 니 다.
위의 sudo service my sql status 명령 에 따라
sock 파일 을 얻 은 위 치 는/var/run/mysqld/mysqld.sock 입 니 다.
그래서 php.ini 를 수정 합 니 다.

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

php-fpm 다시 시작
문제 해결
본 고 에서 말 한 것 이 여러분 의 ubuntu 서버 설정 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기