دستهبندیهای سایت
مشاهده دستهبندیها
بستن دستهبندیها
-
AbanteCart
-
ActiveMQ
-
Akeneo
-
Alfresco Community
- Apache
-
Apache Airflow
-
Apache Guacamole
-
Apache Solr
-
Canvas LMS
-
Cassandra
- CI/CD
-
CiviCRM
-
CMS Made Simple
-
Code Dx
-
Composr
-
Concrete5
-
Confluent Platform
-
Coppermine
-
CouchDB
- cPanel
-
Diaspora
- Directadmin
-
Discourse
-
Django
-
DokuWiki
-
Dolibarr
-
DreamFactory
-
Drupal
-
Elasticsearch
-
ELK
-
ERPNext
-
EspoCRM
-
Etcd
-
eXo Platform
-
Fat Free CRM
-
Ghost
-
GitLab CE
-
GitLab EE
-
Grafana
-
Hadoop
-
HashiCrop Consul
-
HHVM
-
Horde Groupware Webmail
-
JasperReport
-
Jenkins
-
JetBrain YouTrack
-
JFrog Artifactory Open Source
-
Joomla
-
JRuby
-
Kafka
-
Kong
-
Kubernetes Sandbox
-
Lamp
-
LAMP Production-Ready
-
LAPP
-
Let’s Chat
-
Liferay
-
Limesurvey
-
Live Helper Chat
- LVM
-
Magento
-
Mahara
-
Mantis
-
MariaDB
-
MariaDB Galera
-
Matomo
-
Mattermost
-
Mautic
-
MEAN
-
MediaWiki
-
Memcached
-
MODX
-
MongoDB
-
Moodle
-
MyBB
-
MySQL
-
NATS
-
Neo4j
-
Neos
- Nginx
-
NGINX Open Source
-
Noalyss
-
Node.JS
-
Node.js
-
nopCommerce
-
Odoo
-
Open Atrium
-
Open EdX
-
Opencart
-
Openfire
-
OpenProject
-
Orange HRM
-
OroCRM
-
OsClass
-
Owncloud
-
OXID EShop
-
Parse Server
-
Phabricator
-
PhpBB
-
PhpList
-
Pimcore
-
Plone
-
Pootle
-
PostgreSQL
-
Prestashop
-
ProcessMaker Community
-
ProcessWire
- ProFTPD
-
Publify
-
RabbitMQ
-
Redash
-
Redis
-
Redmine
-
Redmine+Agile
-
ReportServer Community
-
ReportServer Enterprise
-
Resource Space
-
Review Board
-
Review Board + Power Pack
-
Roundcube
-
Ruby
-
SEO Panel
-
SilverStripe
-
Simple Machines Forum
-
SonarQube
-
Spree
-
Subversion
-
SuiteCRM
-
TensorFlow Serving
-
TestLink
-
Tiki Wiki CMS Groupware
-
Tiny Tiny RSS
-
Tomcat
-
Trac
-
TYPO3
- Virtualmin
-
Weblate
-
WebMail Pro PHP
-
WildFly
-
Wordpress
-
WordPress Multisite
-
WordPress Production-Ready
-
WordPress With NGINX And SSL
-
XOOPS
-
ZooKeeper
-
Zurmo
مشاهده همه دستهها
ساخت یک اپلیکیشن سفارشی PHP برای TestLink
در این مقاله:
نکته: ما در حال تغییر ساختار فایل و پیکربندی بسیاری از استکهای بیتنامی هستیم. در نتیجهی این تغییرات، مسیر فایلهایی که در این آموزش به آنها اشاره شده ممکن است تغییر کند که این موضوع هم بستگی دارد که استک بیتنامی شما از پکیجهای سیستمی نیتیو لینوکس استفاده میکند (رویکرد A) یا نسخهای self-contained است (رویکرد B). برای تشخیص نوع استکتان و انتخاب رویکرد متناسب، دستور زیر را اجرا کنید:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
خروجی این دستور نشان میدهد که اپلیکیشن شما از کدام رویکرد (A یا B) استفاده میکند و به شما کمک میکند که در این راهنما مسیر، پیکربندی و دستورات متناسب با آن را انتخاب کنید. برای اطلاعات بیشتر راجع به این تغییرات، به بخش سوالات رایج مراجعه کنید.
بسیاری از کاربران یک استک بیتنامی را بهعنوان محیط توسعهای برای پروژههای PHP خودشان استفاده میکنند (به جای استفاده از اپلیکیشنهای شخص ثالث مثل جوملا یا وردپرس). برای پیادهسازی اپلیکیشن بیتنامی خود در این محیط، مراحل زیر را دنبال کنید.
رویکرد A: اپلیکشینهایی که از پکیجهای سیستمی استفاده میکنند
ساختاری بسازید که شبیه ساختار مورداستفادهی بیتنامی هنگام نصب اپلیکیشنهای PHP بیتنامی باشد. برای این کار، مراحل زیر را دنبال کنید:
- دستورات زیر را اجرا کنید تا دایرکتوریها ایجاد شوند و مجوزهای لازم اعطا شوند. USERNAME و GROUP را با همان نام کاربری و گروهی جایگزین کنید که هنگام نصب استک استفاده کردهاید.
sudo mkdir /opt/bitnami/myapp
sudo chown -R USERNAME:GROUP /opt/bitnami/myapp
sudo chmod -R g+w /opt/bitnami/myapp
- فایل /opt/bitnami/apache2/conf/vhosts/myapp-vhost.conf را ایجاد و ویرایش کنید و بلوک پیکربندی زیر را به آن اضافه کنید:
<VirtualHost 127.0.0.1:80 _default_:80>
ServerAlias *
DocumentRoot /opt/bitnami/myapp
<Directory "/opt/bitnami/myapp">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
نکته: اگر اپلیکیشن شما از فایلهای .htaccess استفاده میکند، باید گزینهی AllowOverride None را به AllowOverride All تغییر دهید. دربارهی نحوهی انتقال محتوای فایل .htaccess به فایل اصلی پیکربندی سرور، اینجا را مطالعه کنید.
- فایل /opt/bitnami/apache2/conf/vhosts/myapp-https-vhost.conf را ایجاد و ویرایش کنید و بلوک پیکربندی زیر را به آن اضافه کنید:
<VirtualHost 127.0.0.1:443 _default_:443>
ServerAlias *
DocumentRoot /opt/bitnami/myapp
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/bitnami/certs/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/bitnami/certs/server.key"
<Directory "/opt/bitnami/myapp">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
نکته: اگر اپلیکیشن شما از فایلهای .htaccess استفاده میکند، باید گزینهی AllowOverride None را به AllowOverride All تغییر دهید. دربارهی نحوهی انتقال محتوای فایل .htaccess به فایل اصلی پیکربندی سرور، اینجا را مطالعه کنید.
- سرور آپاچی را دوباره راهاندازی کنید:
sudo /opt/bitnami/ctlscript.sh restart apache
اکنون باید در http://SERVER-IP به اپلیکیشن دسترسی داشته باشید.
رویکرد B: اپلیکیشنهای Self-contained بیتنامی
- اگر میخواهید یک اپلیکیشن PHP در آدرس روت وب سرور (برای مثال http://localhost) در دسترس قرار بگیرد، کافی است فایلهای PHP را در پوشهی /opt/bitnami/apache2/htdocs کپی کنید. بهعنوان مثال میتوانید نگاهی به نمونهی phpinfo بیندازید.
- اگر میخواهید چند اپلیکیشن فعال باشند، باید ساختاری بسازید که شبیه ساختار مورداستفادهی بیتنامی هنگام نصب اپلیکیشنهای PHP بیتنامی باشد. نسخههای اخیر استکهای بیتنامی همراه یک اپلیکیشن نمایشی با این ساختار عرضه میشوند که به شما در شروع به کار کمک میکند. برای استفاده از آن، مراحل زیر را دنبال کنید:
- پوشهی /opt/bitnami/docs/demo را در دایرکتوری /opt/bitnami/apps کپی کنید.
sudo cp -r /opt/bitnami/docs/demo /opt/bitnami/apps
-
- خط زیر را به انتهای فایل /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf اضافه کنید:
Include "/opt/bitnami/apps/demo/conf/httpd-prefix.conf"
-
- سرور آپاچی را با استفاده از ابزار خط فرمان دوباره راهاندازی کنید:
sudo /opt/bitnami/ctlscript.sh restart apache
اکنون باید در http://SERVER-IP/demo به اپلیکیشن نمایشی دسترسی داشته باشید. باید پیام Hello world را در مرورگرتان مشاهده کنید.
- اگر استک شما فاقد اپلیکیشن نمایشی است یا اگر ترجیح میدهید که اپلیکیشن سفارشی را خودتان از پایه بسازید، مراحل زیر را دنبال کنید. این مراحل با این فرض نگاشته شدهاند که اپلیکیشن شما در دایرکتوری /opt/bitnami/apps/myapp قرار دارد.
- دستورات زیر را اجرا کنید تا دایرکتوریها ایجاد و مجوزهای لازم اعطا شوند:
sudo mkdir /opt/bitnami/apps/myapp
sudo mkdir /opt/bitnami/apps/myapp/htdocs/
sudo mkdir /opt/bitnami/apps/myapp/conf
sudo chown -R bitnami:daemon /opt/bitnami/apps/myapp/htdocs/
sudo chmod -R g+w /opt/bitnami/apps/myapp/htdocs/
-
- فایل /opt/bitnami/apps/myapp/conf/httpd-prefix.conf را ایجاد و آن را ویرایش و خطوط زیر را به آن اضافه کنید:
Alias /myapp/ "/opt/bitnami/apps/myapp/htdocs/"
Alias /myapp "/opt/bitnami/apps/myapp/htdocs/"
Include "/opt/bitnami/apps/myapp/conf/httpd-app.conf"
-
- فایل /opt/bitnami/apps/myapp/conf/httpd-app.conf را ایجاد و ویرایش و محتوای زیر را به آن اضافه کنید. این فایل پیکربندی اصلی اپلیکیشن شماست، در نتیجه در آینده با توجه به نیازهای اپلیکیشنتان آن را اصلاح کنید.
<Directory /opt/bitnami/apps/myapp/htdocs/>
Options +FollowSymLinks
AllowOverride None
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>
نکته: اگر اپلیکیشن شما از فایلهای .htaccess استفاده میکند، باید گزینهی AllowOverride None را به AllowOverride All تغییر دهید. دربارهی نحوهی انتقال محتوای فایل .htaccess به فایل اصلی پیکربندی سرور، اینجا را مطالعه کنید.
-
- زمانی که فایلها و دایرکتوریهای فوق ایجاد شدند، خط زیر را به انتهای فایل پیکربندی اصلی آپاچی اضافه کنید که در /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf قرار دارد:
Include "/opt/bitnami/apps/myapp/conf/httpd-prefix.conf"
-
- سرور آپاچی را دوباره راهاندازی کنید:
sudo /opt/bitnami/ctlscript.sh restart apache
اکنون باید در http://SERVER-IP/myapp به اپلیکیشن دسترسی داشته باشید.
اگر ترجیح میدهید که اپلیکیشن در سرور روت شما در دسترس باشد، مراحل اضافی زیر را نیز انجام دهید:
-
- فایل /opt/bitnami/apps/myapp/conf/httpd-prefix.conf را بهگونهای ویرایش کنید که به شکل زیر در بیاید:
DocumentRoot "/opt/bitnami/apps/myapp/htdocs/"
Include "/opt/bitnami/apps/myapp/conf/httpd-app.conf"
-
- سرور آپاچی را دوباره راهاندازی کنید:
sudo /opt/bitnami/ctlscript.sh restart apache
اکنون باید در http://SERVER-IP به اپلیکیشن دسترسی داشته باشید.
زمانی که اپلیکیشن سفارشی PHP خود را ساختید و پیادهسازی کردید، میتوانید یک پایگاه دادهی MySQL یا MariaDB نیز بسازید و در اپلیکیشنتان ادغام کنید.
برای کسب اطلاعات بیشتر راجع به پیکربندی یک اپلیکیشن سفارشی PHP، این ویدیو را تماشا کنید.