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 서버 설정 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ELK 로그 분석 시스템 설치 및 배치주: Logstash 의 실행 은 자바 환경 에 의존 하기 때문에 Logstash 1.5 이상 버 전 은 자바 1.7 보다 낮 지 않 기 때문에 최신 버 전의 자바 를 사용 하 는 것 을 추천 합 니 다.우 리 는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.