परिचय
आप अपने OpenBSD को डिफॉल्ट रूप से इंस्टॉल करने के करीब रखते हैं और कई अतिरिक्त पैकेजों के बिना, यह उतना ही सुरक्षित होगा। जबकि वर्डप्रेस के लिए अधिक सामान्य सेटअप Apache और PHP का उपयोग करना है, OpenBSD के अंतर्निहित httpd का उपयोग करना निश्चित रूप से (और बेहतर) है। यह ट्यूटोरियल आपको लेट्स एनक्रिप्ट सर्टिफिकेट, एक वेब सर्वर और वर्डप्रेस के पूर्ण सेटअप के साथ मिलेगा। ऐसा करने में सक्षम होने के लिए आपको रूट एक्सेस की आवश्यकता होगी।
प्रारंभिक विन्यास
यदि आपने पहले से ऐसा नहीं किया है, तो आपको एक /etc/doas.confफ़ाइल बनाने की आवश्यकता होगी । doasआदेश के लिए OpenBSD के आसान प्रतिस्थापन है sudo।
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
हमें OpenBSD को बताना होगा कि पैकेज कहाँ स्थित हैं। यह /etc/installurlफ़ाइल में होता है ।
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
अब हमें PHP और कुछ अतिरिक्त मॉड्यूल जोड़ने होंगे जो वर्डप्रेस को छवियों और एन्क्रिप्शन जैसी चीजों को संभालने के लिए आवश्यकता होगी। जब संकेत दिया जाता है, तो PHP के नवीनतम पैकेज को स्थापित करने का चयन करें। एक चीज जो आपको करनी है वह है iniनमूना निर्देशिका से मॉड्यूल फ़ाइलों को मुख्य एक में कॉपी करना । यह अतिरिक्त PHP मॉड्यूल को सक्षम करने के लिए किया जाना है।
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli pecl73-mcrypt pecl73-imagick 
doas su -
cp /etc/php-7.3.sample/* /etc/php-7.3/.
प्राप्त करें चलो प्रमाण पत्र एन्क्रिप्ट करें
OpenBSD में एक बेहतरीन एप्लिकेशन है जिसे acme- क्लाइंट कहा जाता है। यह छोटा सा नवाचार वह है जो आपकी खाता कुंजी, निजी कुंजी उत्पन्न करेगा, और आपके लिए एक प्रमाण पत्र प्राप्त करेगा। Acme- क्लाइंट एक वेब सर्वर होने पर निर्भर करता है इसलिए हम एक त्वरित डिफ़ॉल्ट सर्वर परिभाषा को परिभाषित करते हैं।
अपने पसंदीदा संपादक के साथ, बनाएं /etc/httpd.conf। हम अन्य सर्वर परिभाषाओं को बाद में फ़ाइल में जोड़ देंगे। एक स्वतंत्र, वैध एसएसएल प्रमाणपत्र प्राप्त करने के लिए चुनौती-प्रतिक्रिया करने के लिए हमें अब क्या करना है httpd तैयार करें।
prefork 5
types { include "/usr/share/misc/mime.types" }
server "default" {
    listen on egress port 80
    root "/htdocs"
    directory index "index.html"
    location "/.well-known/acme-challenge/*" {
        request strip 2
        root "/acme"
    }
}
अपने पसंदीदा संपादक का उपयोग करके भी बनाएं /etc/acme-client.conf।
authority letsencrypt {
    api url "https://acme-v01.api.letsencrypt.org/directory"
    account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
    api url "https://acme-staging.api.letsencrypt.org/directory"
    account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
domain example.com {
    alternative names { www.example.com }
    domain key "/etc/ssl/private/example.com.key"
    domain full chain certificate "/etc/ssl/example.com.fullchain.pem"
    sign with letsencrypt
}
Httpd को सक्षम और शुरू करें, फिर एक प्रमाणपत्र जारी करें। आप देखेंगे कि एक प्रमाण पत्र जारी किया गया है।
doas rcctl enable httpd php73_fpm
doas rcctl start httpd
doas acme-client -ADFv example.com
doas rcctl stop httpd
सर्वर परिभाषाएँ जोड़ना
/etc/httpd.confचलो एनक्रिप्ट परिभाषाएँ करने के ठीक बाद निम्न कॉन्फ़िगरेशन लाइनों को जोड़ें । Http से https में रीडायरेक्ट करने के लिए httpd सेटअप करें क्योंकि आपके पास एक निशुल्क एसएसएल प्रमाणपत्र है और आप कभी भी असुरक्षित लिंक पर लॉगिन और पासवर्ड भेजने का जोखिम नहीं उठाना चाहते। लाइन पर ध्यान दें, location "/posts/*"यह वह टुकड़ा है जो वर्डप्रेस के पर्मलिंक्स को सुंदर बनाता है। साथ ही, इस कॉन्फ़िगरेशन में वर्डप्रेस व्यवस्थापक साइट पर लॉगिन करने के लिए जानवर-बल के प्रयासों को रोकने में मदद करने का एक तरीका है।
server "example.com" {
    listen on egress port 80
    alias "www.example.com"
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}
server "example.com" {
    listen on egress tls port 443
    alias "www.example.com"
    root "/htdocs/example.com
    directory index "index.php"
     location "/posts/*" {
        fastcgi {
             param SCRIPT_FILENAME "/htdocs/example.com/index.php"
             socket "/run/php-fpm.sock"
        }
     }
     location "/wp-json/*" {
        fastcgi {
           param SCRIPT_FILENAME "/htdocs/example.com/index.php"
            socket "/run/php-fpm.sock"
        }
     }
    location "/wp-login.php*" {
        authenticate "WordPress" with "/htdocs/htpasswd"
        fastcgi socket "/run/php-fpm.sock"
     }
    #Uncomment the following lines to disable xmlrpc. You increase security 
    #at the expense of being able to use to use 
    #the Android and iPhone WordPress App.
    #location "xmlrpc.php*" {
    #    block return 404
    #}        
    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
     }
    tls {
        certificate "/etc/ssl/example.com.fullchain.pem"
        key "/etc/ssl/private/example.com.key"
    }
}
वर्डप्रेस व्यवस्थापक साइट के लिए अतिरिक्त सुरक्षा के लिए उपयोगकर्ता नाम और पासवर्ड फ़ाइल बनाएं। एक अच्छा पासवर्ड चुनें। यह आपको wp-login.phpस्क्रिप्ट चलाने के लिए उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देगा ।
doas su
cd /var/www/htdocs
htpasswd htpasswd wp_user
chown www:www htpasswd
chmod 0640 htpasswd
MariaDB MySQL का एक ड्रॉप-इन रिप्लेसमेंट फोर्क है। हमें वर्डप्रेस के लिए कुछ प्रारंभिक कॉन्फ़िगरेशन और डेटाबेस तैयारी कार्य करने की आवश्यकता है।
इससे पहले कि हम MariaDB का प्रभावी ढंग से उपयोग कर सकें, हमें mysql डेमन को डिफ़ॉल्ट से अधिक संसाधनों का उपयोग करने की अनुमति देने की आवश्यकता है। ऐसा करने के लिए, /etc/login.confनीचे इस प्रविष्टि को जोड़कर निम्नलिखित परिवर्तन करें ।
mysqld:\
    :openfiles-cur=1024:\
    :openfiles-max=2048:\
    :tc=daemon:
MariaDB को सक्षम और प्रारंभ करें। यह प्रक्रिया रूट पासवर्ड सेट करेगी और वैकल्पिक रूप से परीक्षण डेटाबेस को छोड़ देगी। सुरक्षित स्थापना चरण में सुझावों का पालन करना एक अच्छा विचार है।
 doas mysql_install_db
 doas rcctl enable mysqld
 doas rcctl start mysqld
 doas mysql_secure_installation
वर्डप्रेस डेटाबेस और डेटाबेस उपयोगकर्ता बनाएँ।
mysql -u root -p 
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
वर्डप्रेस के पास काफी समय से एक आधिकारिक ओपनबीएसडी पोर्ट नहीं है क्योंकि यह बहुत ही सही बॉक्स से बाहर काम करता है। वर्डप्रेस इंस्टॉलेशन फ़ोल्डर को डाउनलोड करें, निकालें और स्थानांतरित करें।
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/example.com
chown -R www:www /var/www/htdocs/example.com
हम नकल करने के लिए है /etc/resolve.confऔर /etc/hostsकरने के लिए /var/www/etc। यह इतना है कि वर्डप्रेस सफलतापूर्वक बाज़ार तक पहुंच सकता है। वर्डप्रेस एडमिन साइट के माध्यम से प्लगइन्स और थीम डाउनलोड करने के लिए आपको इसकी आवश्यकता होगी।
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
Httpd और शुरू करें php73_fpm।
doas rcctl start httpd php73_fpm
उस url को ब्राउज़ करें जो आपने अपने सर्वर परिभाषा में उपयोग किया था। आपको वर्डप्रेस इंस्टॉलेशन विज़ार्ड दिखाई देगा। डेटाबेस सर्वर विकल्प के लिए, लोकलहोस्ट की जगह लें 127.0.0.1।
एक बार वर्डप्रेस इंस्टॉल हो जाने के बाद, यह परमलिंक्स सेट करने का समय है ताकि वे अधिक एसईओ फ्रेंडली दिखें। वर्डप्रेस एडमिन स्क्रीन से, पर जाएं Settings -> Permalinks। पर क्लिक करें Custom Structureऔर टाइप करें /posts/%postname%। इस बदलाव को करने के बाद, Save Changesबटन पर क्लिक करें। अब आपके पास बहुत अच्छे दिखने वाले लिंक हैं। उदाहरण के लिए, एक पर्मलिंक इस तरह दिखेगा:https://example.com/posts/example-blog-post