PHP-дің кіріктірілген web серверін YII үшін пайдалану
Армысың халқым! Тағы бір ұйқысыз түн және сіздермен тағы да Шәйнек. Шәйнек болған соң php-дің кіріктірілген веб сервері бар екенін енді біліп жүрмін. Әр кезде LAMP немесе виртуалды машина қосып жүретін мен бұл тамаша құралды тауып алып қуанып қалдым. Енді сол серверді Yii үшін пайданайық. Кіріктірілген веб сервер жобаны жазған кезде өте пайдалы, жеңіл және debug жасауға ыңғайлы. Бірақ продакшнда пайдалануға болмайды.
Кіріктірілген сервер php 5.4.0-те пайда болған. Сондықтан php нұсқаңыз осы нұсқадан жоғары болуы керек. Оны былай тексереміз:
Менде 5.5.9 екен:
Кіріктірілген веб серверді пайдалану үшін -S және -t кілттері пайдаланылады. Сізде веб сервердің жұмыс жасап тұрғанын тексеру үшін, кез-келген папкада index.php файлын құрыңыз:
Енді сол папкада серверді былай қоса аласыз:
Енді браузерде localhost:8080 бетін ашыңыз:
Қандай тамаша, ешқандай бас ауру қажет емес, бір ғана команда және бізде сервер бар.
Енді -S кілтінің не істейтінін қарастырайық. Бұл кілт сервер қандай адресте қосылуын көрсетеді. Оған келесідей мәндерді көрсете аласыз:
localhost — серверге тек локальді машинадан қосыла аласыз,
0.0.0.0 — машинаның кез-келген интерфейсынан,
Кез-келген нақты ip — осы көрсетілген ip-де сервер қосылады, біз жоғарыда осыны пайдаландық.
"-t" кілті «directory root» папкасын көрсету үшін қажет. Яғни, біздің жобамыздың файлдары жататын папка. Мысалы:
Енді осы тамаша құралды yii үшін қолданайық. Yii бастапқы бағдарламасын жүктеп аламыз. Архивті бір папкаға ашамыз, және сол папкаға өтіп серверді қосамыз. Былай ғой:
Дайын, енді браузерде ашамыз:
Ааааа, не дейт. Қорықпаңыздар, бұл бізге yii ұрсып жатыр, кукилер үшін кілт көрсетпедің дейді. Оны көрсету үшін config/web.php файлын ашып, 'cookieValidationKey' мәнін орнатамыз, оған кез-келген мән бере салуға болады, продакшн болса, ұзын бір хеш генерация жасаған дұрыс. Ал біз, тез арады оны былай көрсете саламыз:
Қайтадан ашамыз:
Тағы не дейт, а иа енді php mcrypt модулін орнатпағансың деп ұрсып жатыр, тез арада оны орната саламыз:
Енді веб серверді өшіріп қайта қосу керек, өшіру үшін Ctrl-C басыңыз. Қайтадан көреміз:
Иееее, міні, yii бізді құттықтап жатыр. Болды енді yii-де жаза бересіз. Mysql-мен қосып көрген жоқпын, егер қиыншылық болса пікірде жазып қалдырамын.
Кіріктірілген сервер php 5.4.0-те пайда болған. Сондықтан php нұсқаңыз осы нұсқадан жоғары болуы керек. Оны былай тексереміз:
php -v
Менде 5.5.9 екен:
PHP 5.5.9-1ubuntu4.5 (cli) (built: Oct 29 2014 11:59:10)
Copyright © 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright © 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright © 1999-2014, by Zend Technologies
Кіріктірілген веб серверді пайдалану үшін -S және -t кілттері пайдаланылады. Сізде веб сервердің жұмыс жасап тұрғанын тексеру үшін, кез-келген папкада index.php файлын құрыңыз:
<?php
phpinfo();
Енді сол папкада серверді былай қоса аласыз:
shainek@shainek: /tmp/test$ php -S 127.0.0.1:8080
PHP 5.5.9-1ubuntu4.5 Development Server started at Tue Nov 18 05:45:48 2014
Listening on http://127.0.0.1:8080
Document root is /tmp/test
Press Ctrl-C to quit.
Енді браузерде localhost:8080 бетін ашыңыз:
Қандай тамаша, ешқандай бас ауру қажет емес, бір ғана команда және бізде сервер бар.
Енді -S кілтінің не істейтінін қарастырайық. Бұл кілт сервер қандай адресте қосылуын көрсетеді. Оған келесідей мәндерді көрсете аласыз:
localhost — серверге тек локальді машинадан қосыла аласыз,
0.0.0.0 — машинаның кез-келген интерфейсынан,
Кез-келген нақты ip — осы көрсетілген ip-де сервер қосылады, біз жоғарыда осыны пайдаландық.
"-t" кілті «directory root» папкасын көрсету үшін қажет. Яғни, біздің жобамыздың файлдары жататын папка. Мысалы:
[ec2-user@ip-10-229-67-156 ~]$ php -S <localhost or your public IP>:8090 -t /home/ec2-user/public
Енді осы тамаша құралды yii үшін қолданайық. Yii бастапқы бағдарламасын жүктеп аламыз. Архивті бір папкаға ашамыз, және сол папкаға өтіп серверді қосамыз. Былай ғой:
mkdir yii-base
tar xfz yii-basic-app-2.0.0.tgz -C yii-base/
php -S 127.0.0.1:8080 -t yii-base/basic/web/
Дайын, енді браузерде ашамыз:
Ааааа, не дейт. Қорықпаңыздар, бұл бізге yii ұрсып жатыр, кукилер үшін кілт көрсетпедің дейді. Оны көрсету үшін config/web.php файлын ашып, 'cookieValidationKey' мәнін орнатамыз, оған кез-келген мән бере салуға болады, продакшн болса, ұзын бір хеш генерация жасаған дұрыс. Ал біз, тез арады оны былай көрсете саламыз:
'cookieValidationKey' => 'qwerty',
Қайтадан ашамыз:
Тағы не дейт, а иа енді php mcrypt модулін орнатпағансың деп ұрсып жатыр, тез арада оны орната саламыз:
apt-get install php5-mcrypt
php5enmod mcrypt
Енді веб серверді өшіріп қайта қосу керек, өшіру үшін Ctrl-C басыңыз. Қайтадан көреміз:
Иееее, міні, yii бізді құттықтап жатыр. Болды енді yii-де жаза бересіз. Mysql-мен қосып көрген жоқпын, егер қиыншылық болса пікірде жазып қалдырамын.
-
+2