순수한 RedHat7 배포 LAMP 기록
systemctl disable firewalld
systemctl stop firewalld
vi /etc/sysconfig/selinux
SELINUX를 비활성화된 재부팅 서버로 설정
2. 네트워크 yum 소스 구성
wget -O /etc/yum.repos.d/my.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's#$releasever#7#g;s#$basearch#x86_64#g' /etc/yum.repos.d/my.repo
yum clean all
yum makecache
yum install epel-release -y
EPEL(Extra Packages for Enterprise Linux)은 RHEL, CentOS, Scientific Linux에 적용되는 Fedora 기반의 프로젝트입니다.
3. 구성 요소 설치
yum install httpd php php-fpm php-mysql mariadb-server -y
php-fpm 정보
우선 CGI는 무엇입니까?CGI는 웹 서버가 전달하는 데이터가 표준 형식으로 CGI 프로그램의 작성자를 편리하게 하기 위한 것이다.
웹 서버 (예를 들어nginx) 는 내용의 배포자일 뿐이다.예를 들어/index를 요청하면.html, 그러면 웹 서버는 파일 시스템에서 이 파일을 찾아 브라우저에 보냅니다. 여기는 정적 데이터를 나누어 줍니다.자, 지금 요청한 것이/index라면.php, 프로필에 따라nginx는 이것이 정적 파일이 아니라는 것을 알고 PHP 해상도를 찾아가서 처리해야 합니다. 그러면 이 요청을 간단하게 처리한 후에 PHP 해상도에 전달합니다.Nginx는 어떤 데이터를 PHP 해상도에 전송합니까?url이 있어야 하죠. 검색 문자열도 있어야 해요. POST 데이터도 있어야 해요. HTTP 헤더가 적으면 안 돼요. 그래요. CGI는 어떤 데이터를 전달해야 하는지, 어떤 형식으로 후방에 이 요청을 처리하는 프로토콜을 규정하는 거예요.PHP 코드에 사용된 사용자가 어디서 왔는지 잘 생각해 보세요.
웹 서버가/index를 받으면php 이 요청을 하면 대응하는 CGI 프로그램이 시작됩니다. 여기가 바로 PHP 해상도입니다.다음 PHP 해상도는 php를 해석합니다.ii 파일, 실행 환경을 초기화하고 요청을 처리한 다음 CGI에 규정된 형식으로 처리된 결과를 되돌려 프로세스를 종료합니다.웹 서버에서 결과를 브라우저에 되돌려줍니다.
자, CGI는 프로토콜입니다. 프로세스와 상관없습니다.그럼 패스트cgi는 또 뭐예요?Fastcgi는 CGI 프로그램의 성능을 향상시키는 데 쓰인다.
성능을 향상시키려면 CGI 프로그램의 성능 문제는 어디에 있습니까?"PHP 해상도는 php.ini 파일을 해석하고 실행 환경을 초기화합니다."바로 여기입니다.표준 CGI는 모든 요청에 대해 이 절차를 실행합니다. (힘들지 않아요! 프로세스를 시작하는 것이 힘들다고 말해요!),그래서 매시간 처리하는 시간이 길어요.이것은 분명히 불합리하잖아!그러면 Fastcgi는 어떻게 하는 거죠?우선, Fastcgi는 마스터를 시작하여 프로필을 분석하고 실행 환경을 초기화한 다음, 여러 개의 Worker를 시작합니다.요청이 왔을 때, 마스터는worker에게 전달되고, 즉시 다음 요청을 받아들일 수 있습니다.이렇게 하면 중복된 노동을 피할 수 있고 효율은 자연히 높다.그리고worker가 충분하지 않을 때master는 설정에 따라 몇 개의worker를 미리 시작하여 기다릴 수 있다.물론 유휴worker가 너무 많을 때 멈추기도 합니다. 이렇게 하면 성능도 향상되고 자원도 절약할 수 있습니다.이것은fastcgi의 프로세스에 대한 관리입니다.
그러면 PHP-FPM은 또 뭐죠?Fastcgi를 구현한 프로그램으로 PHP에 의해 공식적으로 받아들여졌다.
다들 아시다시피 PHP의 해석기는 php-cgi입니다.php-cgi는 CGI 프로그램일 뿐, 그 자신은 요청을 해석할 수 있을 뿐, 결과를 되돌릴 수 없고, 프로세스 관리를 할 수 없다(황상, 신첩은 정말 할 수 없다!)그래서 php-cgi 프로세스를 스케줄링할 수 있는 프로그램이 생겼습니다. 예를 들어lighthttpd에서 분리된spawn-fcgi입니다.자, PHP-FPM도 이렇게 동쪽이다. 오랜 시간 발전한 후에 점차적으로 모두의 인정을 받았다. (몇 년 전에 사람들은 PHP-FPM의 안정성이 너무 나쁘다고 불평했었다는 것을 알아야 한다.) 또한 점점 유행하고 있다.
4. Apache 구성
아파치가 php 동적 웹 페이지에 접근할 수 있도록 설정을 해야 합니다
vi /etc/httpd/conf/httpd.conf
AddType :
AddType application/x-httpd-php-source .php
AddType application/x-httpd-php .php
기본 홈 페이지 수정 추가:
DirectoryIndex index.html index.php
httpd-t로 프로필 문법 검사
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::52e8:3708:716d:40a4. Set the 'ServerName' directive globally to suppress this message
Syntax OK
서버 이름을 설정해야 합니다. 편집/etc/httpd/conf/httpd.conf
ServerName www.qigefei.com
5. Apache 연결 php-fpm 구성
vi /etc/httpd/conf.d/php-fpm.conf
ProxyRequests Off #
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
# php php-fpm
/var/www/html/에서 index를 만듭니다.php 내용:
phpinfo();
?>
Apache 재부팅
systemctl restart httpd
브라우저가 서버 주소에 접근합니다. php 설정 정보를 보면 설정이 성공했습니다.
6. Mysql 초기화
systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
#
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
# root Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]
# n
... skipping.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
# root Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]
# test n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
# Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
7. Mysql 구성
mysql -uroot -proot
grant all on *.* to 'root'@'%';
flush privileges;
PHP를 Mysql,/var/www/html/에 연결할 수 있는지 테스트합니다.php 내용:
$conn = mysql_connect('127.0.0.1','root','root');
if ($conn)
echo " "
else
echo " "
?>
브라우저에서 서버 ip/test를 입력하십시오.php
연결 성공
이로써 LAMP 구축 완료
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.